TypeScript-面试-索引签名与映射类型
2026年10月16日·Admin·1 次浏览
面试题:索引签名是什么?映射类型 in keyof 怎么用?
索引签名
当对象有动态键名时用:
type Dict = { [key: string]: number }
注意:同时存在具体属性与索引签名时,具体属性的类型必须可赋给索引签名类型。
keyof 与查找类型
keyof T:T 的键联合。T[K]:索引访问类型。
映射类型
type ReadonlyObj<T> = { readonly [P in keyof T]: T[P] }
type OptionalObj<T> = { [P in keyof T]?: T[P] }
-readonly、-? 可去掉只读/可选(修饰符加减)。
内置 Record
Record<string, number> 等价于字符串键到 number 的对象,与索引签名场景接近。