TypeScript 速查
共 42 条常用 TypeScript 写法,覆盖基础类型、类型别名/接口/泛型、类型收窄与断言、模块与工具类型四组场景, 逐条给出写法与说明。支持搜索与分类筛选,点击写法即可复制。
基础类型
| 写法 | 说明 |
|---|---|
| 数字,含整数与浮点 | |
| 字符串 | |
| 布尔值 | |
| 未知类型,使用前必须收窄(比 any 安全) | |
| 放弃类型检查,尽量少用 | |
| 无返回值 | |
| 永不返回(如抛错分支) | |
| 联合类型 | |
| 数组类型两种写法 | |
| 元组,长度与顺序固定 | |
| 对象类型,? 表示可选 |
类型别名 / 接口 / 泛型
| 写法 | 说明 |
|---|---|
| 类型别名,可联合/交叉 | |
| 接口,描述对象结构,可声明合并 | |
| 接口继承 | |
| 交叉类型,合并成员 | |
| 泛型函数,约束参数与返回值一致 | |
| 条件类型 | |
| 取对象所有键的联合 | |
| 索引访问类型 | |
| 全部属性转为可选 | |
| 全部属性转为必填 | |
| 全部属性只读 | |
| 挑选 / 排除若干属性 | |
| 构造键为 K、值为 V 的对象类型 | |
| 取函数返回类型 |
类型收窄与断言
| 写法 | 说明 |
|---|---|
| 原始类型收窄 | |
| 按属性存在性收窄 | |
| 按类收窄 | |
| 真值收窄,排除空数组等 | |
| 类型断言,不做运行时检查 | |
| 非空断言,去 null/undefined | |
| 自定义类型守卫的返回签名 | |
| 保持字面量推断同时校验类型 |
模块与工具类型
| 写法 | 说明 |
|---|---|
| 命名导出与导入 | |
| 默认导出 | |
| 仅导入类型,编译后擦除 | |
| 只读属性,禁止重新赋值 | |
| 字面量推断,缩小为最窄类型 | |
| 声明外部存在的类型,不做实现 | |
| 预期此处报错,报错才通过 | |
| 枚举,运行时存在,可按需避免 | |
| 开启 strictNullChecks 等严格检查 |
使用说明
TypeScript 的类型体操常卡在工具类型和泛型写法上。本速查把基础类型、接口、泛型、工具类型与 tsconfig 常用项归好组,写类型时直接查。
- 搜索类型名或写法(如 Record、Pick、泛型、断言)。
- 按分组查看基础类型、泛型、工具类型、配置等。
- 点击复制即可取走可用的类型声明片段。
常见问题
- Partial 和 Required 分别做什么?
- Partial<T> 把所有属性变为可选;Required<T> 把所有属性变为必填,二者都只作用于顶层属性。
- interface 和 type 有什么区别?
- 两者大多可互换;interface 支持声明合并与 extends,type 更灵活(可写联合、交叉、条件类型)。