1. 类型推导
let str; // any
str = 'abc'; // 正常
str = 123; // 正常
let str = 'abc';
str = 123; // 报错,提示number类型的值不能赋给string类型
2. 联合类型
- 使用联合类型,未赋值时,只能访问联合类型中共有的方法和属性
let str: number | string;
// str. 只能访问number 和 string 共有的方法
// 赋值后,能访问对应类型的方法
str = 3.14;
console.log(str.toFixed(1)); // number方法,把数字转字符串
str = 'abc';
console.log(str.toLocaleUpperCase()); // 字符串方法,转大写
3. 类型断言
- 指定一个值的类型,即允许变量从一种类型更改为另一种类型
- 语法:<类型>值 或 值 as 类型
let a: string | number;
(<number> a!).toFixed(1);
(a! as number).toFixed(1);
4. 字面量类型
- 可以用字面量当做类型,同时也表明只能采用这几个值。类似枚举。
type Direction = 'Up' | 'Down' | 'Left' | 'Right';
let direction:Direction = 'Up';