TypeScript中的类型操作符keyof

keyof T,索引类型操作符。对于任何类型T,keyof T的结果为T上已知的公共属性名的联合。
type Person = {
    name: string;
    age: number;
    sex: string;
};

type Test = keyof Person;
// Test: "name" | "age" | "sex"

例子:定义一个get方法获取对象data的属性值

const data = {
    a: 1,
    b: 2,
    c: 3,
};

// 普通get方法(缺点:无法确定返回类型,无法对key做约束)
function get(obj: object, key: string) {
    return obj[key];
}

// 利用keyof约束实现get方法
function get<T extends object, K extends keyof T>(obj: T, key: K): T[K]{
    return obj[key];
}

get(data, 'a'); // 因为做了类型约束,第二个参数只能传入a,b,c 否则报错
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容