| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
文档介绍了TypeScript的基础类型系统,包括void、unknown、never、number、boolean、string等类型。文档还讨论了结构类型系统,指出即使两个结构完全一致,也不能互相赋值。此外,文档提到了高级类型如数组类型、接口类型和函数类型,以及特殊类型如any、null、undefined等。文档还展示了TypeScript如何编译为ES5/ES6兼容的JavaScript代码。 | ||
| AI总结 | ||
## TypeScript 类型系统总结
### 1. 基础类型
- **数字类型**:`let num: number;`
- **布尔类型**:`let flag: boolean;`
- **字符串类型**:`let str: string;`
- **null 和 undefined**:`let y: number; y = null;` 和 `let z: string; z = undefined;`
- **void 类型**:表示函数没有返回值,`function func(): void {}`
- **unknown 类型**:作为顶级类型,兼容所有类型,`let foo: unknown;`
- **never 类型**:作为底部类型,表示函数不会返回,`let bar: never;`
### 2. 结构类型系统
- 结构类型系统要求类型形状一致才能互相赋值。例如:
```typescript
struct Person1 { name: string; age: int; }
struct Person2 { name: string; age: int; }
Person2 p2 = p1; // 报错:无法从 Person1 转换为 Person2
```
- 接口(interface)定义类型形状,即使两个接口结构一致,也不能直接赋值:
```typescript
interface Person1 { name: string; age: number; }
interface Person2 { name: string; age: number; }
let p1: Person1 = { name: 'xxx', age: 23 };
let p2: Person2 = p1; // 报错:无法从 Person1 赋值给 Person2
```
### 3. 高级类型
- **数组类型**:`let arr: number[];`
- **函数类型**:定义函数签名,`type Callback = () => void;`
- **枚举类型**:`enum Tristate { False = 'False', True = 'True', Unknown = 'Unknown';}`
### 4. 类型断言与守卫
- **类型断言**:使用 `as` 进行类型转换。
- **类型守卫**:通过条件语句收敛变量类型,支持 `typeof`、`instanceof`、`in` 等判断。
### 5. 工具类型
- **Record**:定义键值对类型,`type Record | ||
| 来源 | deeplang.org | ||||
|---|---|---|---|---|---|
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
18 页请下载阅读 -
文档评分














TypeScript 类型系统