【TS】学习个人记录知识点(类型阶段)01

1.相比js而言ts可以定义变量类型,这样极大减轻了后期的维护成本。

    定义变量a为数字后,后期使用时就不能再赋值其它类型。

//声明一个变量a,同时指定他的类型为number
let a:number
let b:string
// a的类型设置为number,在以后的使用过程中a只能是数字
a = 10;
a = 33;

//类型不对就会报错
// a = 'hello' 

2.入参参数与返回值也可自定义类型

//约束入参参数的类型与返回值类型
function sum(c:number,d:number):number { 
  return c + d;
}

console.log(sum(123, 456));

3.也能直接使用字面量来定义a0为一个number

//可以直接使用字面量进行类型声明
let a0: 10;
a0 = 10;

4.自定义联合类型,如果给a1赋值其它类型将会报错。

//可以使用|来连接多个类型(联合类型)
let a1: "male" | "famale";
a1 = "male"
a1 = "famale"

//定义类型 b1可以为布尔类型或者字符串
let b1: boolean | string
b1 = true
b1 = "hello"

5.一个变量设置类型为any后相当于对该变量关闭了ts的类型检测

//any 表示任意类型 不建议使用
let dany: any

//以下都不会报错
dany = "hello"
dany = 23
dany = true

//dany的类型是any,可以直接赋值给任意变量
//s = dany;

6.未知类型unknow等同一个类型安全的any

//unknown 表示未知类型的值
let e: unknown
e = 10;
e = "hello";
e = true

e = "hello";
//unknown 实际上就是一个类型安全的any
//unknown类型的变量,不能直接赋值给其他变量

if (typeof e === "string") { 
  s = e;
}

//类型断言,可以用来告诉解析器变量的实际类型
s = e as string;
s = <string>e;

猜你喜欢

转载自blog.csdn.net/ONLYSRY/article/details/128301828