## 基本类型
### 有哪些类型
最为常见的类型: - 布尔值: 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 常用类型
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 相信现在很多小伙伴都在使用 TypeScript(以下简称 TS),在 TS 中除了一些常用的基本类型外,还有一些...
- 转发 # TypeScript基础入门之高级类型的索引类型(Index types) 高级类型 索引类型(Inde...
- 为什么 TypeScript Vue2.x 对 TypeScript 的支持是硬伤,而 TypeScript 对于...