参考答案:
字面量类型
包括字符串、数字、布尔字面量,如 'success' | 'error'
,常用于联合类型限制特定值。
标准原始类型
string
:包含模板字符串类型(如 `id-${number}`
)number
:支持二进制、八进制等字面量boolean
:严格区分 true/false
字面量类型symbol
:包含 unique symbol 类型(const sym = Symbol()
)bigint
:支持 100n
类型标注特殊原始类型
null
与 undefined
:默认是所有类型的子类型(开启 strictNullChecks
后变为独立类型)void
:表示无返回值,与 undefined
有细微差异never
:用于永不返回的函数或不可能的类型(如 throw Error()
)结构化类型
interface
):支持继承、合并声明type
):支持联合、交叉等复杂操作{ id: string; count?: number }
数组与元组
number[]
或 Array<string>
[x: number, y?: string]
ReadonlyArray<T>
函数类型
new (...args) => T
)组合类型
A | B
):需类型收窄(Narrowing)处理A & B
):类型合并,可能产生 never
工具类型(Utility Types)
Partial<T>
、Required<T>
、Readonly<T>
Pick<T, K>
、Omit<T, K>
、Record<K, V>
Parameters<T>
、ReturnType<T>
Exclude<T, U>
、Extract<T, U>
模板字面量类型(TS 4.1+)
如 type HttpMethod = `HTTP_${'GET' | 'POST'}`
配合 infer
可实现复杂字符串解析
条件类型(Conditional Types)
T extends U ? X : Y
构成类型逻辑的基础,常用于泛型约束
映射类型(Mapped Types)
通过 in
操作符动态生成类型:
1type OptionsFlags<T> = { 2 [K in keyof T]: boolean; 3};
最近更新时间:2025-07-16
题库维护不易,您的支持就是我们最大的动力!