类型推论
类型推论主要存在以下两种情况:
1.声明了一个变量但是没有定义类型
let str = '小剑'
// 当把123赋值给str时会报错
str = 123
当出现这种情况,代码编辑器会报错,因为TS帮我们推断的类型是string,不能将其他的类型数据
赋值给string类型,如赋值会出现如下报错
2.声明变量没有定义类型也没有赋值这时候TS会推断成any类型可以进行任何操作
let xiaojian
xiaojian = 123
xiaojian = '小剑'
xiaojian = []
类型别名
type 关键字(可以给一个类型定义一个名字)多用于符合类型,主要还是用于简化代码的编写
定义类型别名
// 类型别名
type s = string
let str:s = '小剑'
定义联合类型别名
// 类型别名+联合类型
type s = string | number
let str:s = '小剑'
let num:s = 123
定义函数类型别名
// 函数式类型别名
type cb = () => string
const fn:cb = () => '小剑'
定义值得类型别名
// 值得类型别名
// 变量value的值只能是T中定义的值,否则会报错
type T = boolean | 0 | '123'
let value:T = '123'