TypeScript基本语法使用看这一篇就够了通俗易懂(持续更新)

本文介绍TypeScript的基本语法使用 TypeScript基本语法使用 里面记录了TS不同类型的使用方式,涵盖到,number,string,boolean,字面量,any,unknwn,void,never,object,array,enum等的使用方法,通俗易懂。

基本语法使用(number,string,boolean,function)
基本语法使用(字面量类型,联合类型,any,unknown,void,never,类型断言)
基本语法使用(object,函数结构类型,数组类型,enum枚举,&和|使用,类型别名)
废话不多说,先上图
在这里插入图片描述

数字类型(number )

var a: number //定义一个数字类型的变量a
a = 10;
// a = "hello" //该代码会保错,因为 变量a的类型是number,不能赋值字符串 如下图

在这里插入图片描述

字符串类型(string)

//可以这样声明字符串类型的变量
var b :string
b = '欢迎学习ts'
// b = 123 //同理这样赋值数字类型也会报错

boolean类型(boolean)

//声明一个boolean 值
var c: boolean 
//也可以声明的同时 直接赋值 比如
var d :boolean = false

函数类型:下面我们来解释一下这个函数,我们定义了一个函数sum,有两个参数a,b 他们都是数字类型 返回的值也是数字类型

//定义一个函数类型 
function sum(a:number,b:number): number{
    return a+b
}
sum(123,456)
// sum('123',456) //这个代码会保错,因为两个参数必须为数字类型number

直接赋值,不声明类型会怎么样呢?如下:

var e = false //TS很聪明,这样直接就是boolean类型的值了
var f = 123//同理,这样变量f就是数字类型number了,其他类型同理

那么函数也这样声明呢? 会怎么样呢? 不妨思考一下

// 如果我们这样写呢,会怎么样呢? 在函数中这样写参数会是任意值
function sum1(a,b){
    return a+b
}
// 这样写 我们就可以传入任意类型的两个参数 
// 注意:参数不能少传
sum1(123,456)
sum1("11",'22')

字面量类型:一旦声明就不能修改了,这个有点像常量

var a1:10 //字面量类型声明 一旦声明就不能修改了,这个有点像常量
// a1=20  这个代码会报错,字面量类型声明 是不能修改的

联合类型 :连接多个类型 如下

var b1:string | number | boolean
// 这样写的话b1可以有多种类型,可以是字符串类型,数字类型,boolean类型 其他类型则不行
b1 = "1234"
b1 = 1234
b1 = false

// 当然,我们还可以这样写
var b2:"male" | "female" | 123
// 那么b2的值只能是male,female 和123 如下
b2 = "male"
b2 = "female",
b2 = 123
// b2=false //会报错 因为声明的时候没有这个false

any 类型
有没有想过?我们还可以直接声明 如下:

var c1;
//如果我们这样声明的话,则表示是任意类型any(隐式的any),相当于TS对该变量关闭了类型检测
// 注意:使用TS时,不建议使用any类型
c1 = 10
c1 = 'hello'
c1 = false

unknown 类型

var d1 :unknown
d1 = 123
d1 = false
d1 = "123"

// 这样看unknown是不是和any没有区别 
// 其实他们是有区别的
// 比如我们声明一个 
var f1:string
f1 = c1 //可以赋值给其他变量
// f1 = d1 //不能直接赋值给其他变量

//可以这样解决:
if(typeof d1==="string"){
    f1 = d1
}
//我们可以得出结论:
// unknown 实际上是一个类型安全的any,
//unknown 类型的变量,不能直接赋值给其他变量

//我们引出类型断言
//类型断言:可以用来告诉解析器变量的实际类型
/*
语法:
    变量 as 类型
    <类型>变量
*/
f1 = d1 as string
f1 = <string>d1

void类型 用来表示空 以函数为例,就表示没有返回值的函数

function fn():void{
    
}

never类型 :表示永远不会返回结果,没有值 如下:

function fn1():never{
  throw new Error("报错啦!");
  
}

对象类型:object

var a:object
a = {}
a = function(){}
//只能赋值对象类型,其他类型的不能赋值,否则会报错

/* 
    {}用来指定对象中可以包含哪些属性
    语法:{属性名:属性值,属性名:属性值}
    在属性名后加上?表示属性是可选的
*/
var b :{name:string,age?:number}
b = {name:'C罗'} //因为age? 是可选的所有我们可以不传入,否则必须传入
b = {name:'C罗',age:37}
// b = {} //该代码会报错,因为赋值没有至少要有name

// 上面那样写是不是感觉很鸡肋 ,不妨看看下面这样写:
var c:{name:string,[propName:string]:any}
c = {name:'内马尔',age:37,gender:'男'}
// [propName:string]:any 表示我们可以传任意类型的属性,这样是不是方便多了

函数结构类型

/* 
    设置函数结构类型声明:
        语法:(形参:类型,形参:类型...)=>返回值
 */
// 直接上代码 
var d:(a:number,b:number)=>number
d = (n1:number,n2:number):number=>{
    return n1+n2
}

数组类型

/* 
    数组类型声明
        类型[]
        Array<类型>
        这两种方法都可以声明
*/
// string[] 表示字符串数组
var e:string[]
e = ['a','b','c'] //只能包含字符串

// number[] 表示数字类型数组
var f:number[]
f = [1,2,3] //只能包含数字

//还有一种声明的方法
var g:Array<number>
g = [1,2,3]

var h:Array<string>
h = ['1','2','3']

enum枚举

/* 
    enum枚举
        语法:enum 名字(一般大写)
*/

enum Gender{
    Male = 0,
    Female=1
}
//使用:
var i:{name:string,gender:Gender} //gender 只能取 枚举Gender里面的值
i = {
    name:'梅西',
    gender:Gender.Male
}

& 和 | 的使用

// & 表示两个都要满足
var j:{name:string} & {age:number}
j = {name:'2022世界杯',age:2022}

// | 满足任意一个即可
var k:{name:string}|{age:number}
k = {name:'科比'}

类型别名:type 表示 可以为 类型取别名

type myType = 1 | 2 | 3 | 'C罗'
var l:myType
var m:myType
var n:myType
 m = 'C罗' // 别名里面的值都可以取
 n = 1 // 别名里面的值都可以取
先更新到这里,会持续更新的,有不对的地方,希望能够指点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TypeScriptJavaScript的超集,包含了所有JavaScript语法,同时还提供了一些额外的语法和特性。 1. 变量声明 TypeScript提供了多种变量声明的方式: - var 可以使用var关键字声明变量,作用域为当前函数。 - let let关键字可以声明块级作用域变量,作用域为当前块。 - const const关键字声明的是一个常量,一旦被赋值,就不能再次被修改。 2. 类型注解 TypeScript中可以为变量、函数的参数和返回值指定类型注解,以确保类型的正确性。 例如: ```typescript let num: number = 123; function add(x: number, y: number): number { return x + y; } ``` 3. 接口 接口可以用来定义对象的类型,包括属性名和类型。 例如: ```typescript interface Person { name: string; age: number; } let person: Person = { name: 'Tom', age: 18 }; ``` 4. 类 TypeScript支持类的定义,包括继承和成员修饰符。 例如: ```typescript class Animal { private name: string; constructor(name: string) { this.name = name; } public move(distance: number) { console.log(`${this.name} moved ${distance}m.`); } } class Dog extends Animal { constructor(name: string) { super(name); } public bark() { console.log('Woof! Woof!'); } } let dog = new Dog('Max'); dog.bark(); dog.move(10); ``` 5. 函数 TypeScript中的函数可以指定参数类型、返回值类型和函数类型。 例如: ```typescript function add(x: number, y: number): number { return x + y; } let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x + y; } ``` 6. 泛型 泛型可以用来在定义函数、类、接口时,让类型参数化,以便在使用时动态指定具体类型。 例如: ```typescript function identity<T>(arg: T): T { return arg; } let output = identity<string>('hello'); ``` 除了上述语法外,TypeScript还提供了很多其他的语法和特性,例如枚举、元组、命名空间等,可以根据实际需求灵活使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胡要努力啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值