Typescript 常用类型

## 基本类型

### 有哪些类型

最为常见的类型: - 布尔值: boolean - 字符串: string - 数值: number - 数组: string[] - 对象: object - null / undefined: 和 JS 中一样

稍微进阶一些的类型: - Map: 哈希表,类似于 Java 的 HashMap - Set: 集合,类似于 Java 的 HashSet - enum: 枚举,编程中常用的概念

特殊类型 - any: 任何值,不推荐使用 - void: 没有返回值 - never: 不存在的类型,除了 never 之外,没有任何类型可以复制给 never

### 类型怎么使用

声明: - interface: 接口声明 - type: 类型声明

类型断言: - 声明变量时,使用冒号指定变量类型 - 使用 as,让变量“作为”某种类型

类型属性: - 可选: 字段名称后面加上问号 - 只读: 字段名称前面加上 readonly - 类型作为字段:[key: string]: number;

面向对象: - 实现: class XXX implements InterfaceXXX - 继承: - 类继承: class A extends B - 接口继承接口: interface A extends B - 接口继承类: interface A extends classB - 泛型: ``

高级类型: - 交叉: 与的符号 &,包含所有字段 - 联合类型:或的符号,两个类型都可以

一个稍微复杂的例子:

```tsx
function pluck(o: T, names: K[]): T[K][] {
return names.map(n => o[n]);
}

interface Person {
name: string;
age: number;
}
let person: Person = {
name: 'Jarid',
age: 35
};
let strings: string[] = pluck(person, ['name']); // ok, string[]
```

其中 `<>` 有两个泛型: T, K T 好说,就是一个泛型而已。K 有一个 extends,extends 的对象是 T 的字段。也就是说 K 是 T 的其中一个字段。 pluck 的含义是,把 o 按照 names 这个字段数组的顺序,值取出来,并且也放在一个数组中返回:

Typescript 常用类型_第1张图片

你可能感兴趣的:(前端,Typescript,前端,typescript)