原始数据类型Primitive
boolean
string
number
null
undefined
symbol //独一无二的值,用于防止对象属性名冲突
另外symbol不可以做运算,可以通过 .toString()
或 Boolean()
进行转换
注意,首字母大写是创建实例,小写是声明类型
类型推论
正常写法 isNum: boolean = true;
推论写法 isNum = true;
当声明定义了值时,会自动推论出该声明的类型
如果
let isNum; isNum = true;
定义式未赋值会推论为any类型(任意类型)
any类型
指任意类型,无赋值为any,则推论为: any
什么时候用any?
- 第三方库没有提供类型文件时
- 类型转换遇到困难时
- 数据结构(json)太复杂时
类型的方法
取决于声明的类型的方法,请参考
[资料] 基本包装对象
联合类型
let seven: string | number;
seven = 7;
seven = ‘seven’;
则可以使用联合类型的共有属性和方法
number 的 .toFixed(0) //报错
string 的 .length //报错
共有方法 .toString() //成功
类型断言
断定它一定是这个类型
- 类型断言可以将一个联合类型的变量,指定为一个更加具体的类型
- 不能将联合类型断言为不存在的类型 ```typescript let seven: number | string;
(seven as number).toFixed(3); // 类型断言的第一种语法
双重断言
```typescript
seven as any as string