【TypeScript】基础类型&类型断言

2021/09/09 09:35:55

基础类型

元组 Tuple

相当于规定了每一位上属性类型的数组,并没有 Tuple 这个类型,可以用 type 关键字定义想要的元组类型。

访问越界元素时会用联合类型替代

let x: [string, number];
// Initialize it
x = ["hello", 10]; // OK
x = [10, "hello"]; // Error
x[3] = "word"; // OK, 字符串可以赋值给(string | number)类型

枚举 enum

建立属性值和索引之间的映射,有 const 关键字时只生成常量,否则生成的是一个 object

默认从 0 开始为元素编号,可以手动指定。

enum color { red, green, blue };
enum color2 { red = 1, green, blue };   // 相当于指定起始索引 { red = 1, green = 2, blue = 3 }
color['red'] === 0;
color[0] === 'red';

枚举是一组常数的集合,定义一个枚举就相当于定义一组常量,只不过维护起来更加方便。

Object

object 表示非原始类型,也就是除 numberstringbooleansymbolnullundefined之外的类型。

类型断言

当你在 TypeScript 里使用 JSX 时,只有 as 语法断言是被允许的。

  • 尖括号语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
  • as 语法
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;