ts类型分为两种: 原始数据类型 对象类型
原始数据类型: number string bigint Symbol undefined null boolean
注意 new Boolean()创造的对象不是布尔值 是一个对象
``是模版字符串 ${}用来在模版字符串中嵌入表达式
void就是返回空
null undefined 是所有类型的子类型,也就是null类型的变量可以赋值给number类型变量
string | number 是联合类型
赋值的时候 变量的形状必须和接口形状一致 除非加上?:可选属性 或者加上任意属性 [propName:string]: any;
还可以加可读属性 readonly id :number;
只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候。
interface Person {
id: number;
}
通常arguments有自己的类型 内置对象 IArguments
ts中 => 和es6的不一样 ts的箭头表示函数的定义 左边是输入类型 右边是输出类型
也可以用接口定义函数需要符合的形状
(array, ...items:any[])获取函数中的剩余参数
也可以定义多个函数重载 前面重复定义多次函数 最后可以是联合类型的函数实现
非空断言 我这个值一定不是空 排除null undefined
let name: string = name!;
类型断言有两种语法 1. 值 as 类型 2.<类型>值
我们在tsx语法中必须使用第一种 as形式
declare var 并没有真的定义一个变量,只是定义了全局变量的类型,仅仅用于编译时的检查,在编译结果中会被删除。
xxx.d.ts放声明语句
declare开头的都只是编译时检查类型 不会真的去定义声明
type关键词用于创建类型别名或者 定义字符串字面量类型
enum类型用于取值被限定在一定范围内的场景。
enum Days {
Sun,Mon,Tue };
赋值从0开始递增 且其key为字符串类型