白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

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 的对象,与索引签名场景接近。

© 2025 My Blog. Built with Nuxt.js v4