天天向上的学渣 2022-04-21 17:20 采纳率: 100%
浏览 32
已结题

ts中keyof的逻辑

interface Person {
name: string;
age: number;
}

type K1 = keyof Person; // "name" | "age"
type K2 = keyof Person[]; // "length" | "toString" | "pop" | "push" | "concat" | "join"
type K3 = keyof { [x: string]: Person }; // string | number

初学ts,K3的类型为什么是 string | number,K1和K2都理解,K3中keyof后的对象代表什么意思呢,求解答

  • 写回答

1条回答 默认 最新

  • keenanli 2022-04-21 18:28
    关注

    key可以是string或者number。
    明明声明的是为string,但是可以是number的原因是从JavaScript对象获取某个key的值时,会自动将键入的key转为字符串。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 4月21日