美文网首页
TypeScript中的类型操作符keyof

TypeScript中的类型操作符keyof

作者: 微志异 | 来源:发表于2020-03-04 17:52 被阅读0次
    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 否则报错
    

    相关文章

      网友评论

          本文标题:TypeScript中的类型操作符keyof

          本文链接:https://www.haomeiwen.com/subject/rysblhtx.html