## 基本类型
### 有哪些类型
最为常见的类型: - 布尔值: 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 - 泛型: `<T>`
高级类型: - 交叉: 与的符号 &,包含所有字段 - 联合类型:或的符号,两个类型都可以
一个稍微复杂的例子:
```tsx
function pluck<T, K extends keyof T>(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 常用类型
最新推荐文章于 2024-05-21 10:08:20 发布