美文网首页Typescript
TS中keyof的作用以及应用

TS中keyof的作用以及应用

作者: 莲花怪兽 | 来源:发表于2021-03-31 09:15 被阅读0次

官方定义:keyof该操作符可以用于获取某种类型的所有键,其返回类型是联合类型(keyof的应用多第三方库的源码中常见)

function prop<T extends object, K extends keyof  T>(obj:T, key:K){
    return obj[key];
}
翻译上面代码:

其中使用了TS泛型和泛型约束。首先定义了T类型并使用extends关键字继承object类型的子类型,然后使用keyof操作符获取T类型的所有键,它的返回 类型是联合 类型,最后利用extends关键字约束 K类型必须为keyof T联合类型的子类型。

下面举例说明:
interface Cass {
    age: number;
    myName: string;
};
// 或使用下面这种方式定义
// type Xiaoguaishou= {
//     age: number;
//     myName: string;
// };
// 关于interface和type的区别,请查阅别的文章 
const person: Cass = {
    age: 6,
    myName: "xiaoguaishou",
}

function prop<T extends object, K extends keyof  T>(obj:T, key:K){
    return obj[key];
}

// 下面这种写法和上面的写法在实际使用中的区别
// 1.输出的结果都是一致
// 2.上面的方式在编码过程就能知道输入的类型是否正确,下面这种方式需要在运行之后 
// function prop(obj:Xiaoguaishou, key:string){
//     return obj[key];
// }

const age = prop(person, "age");
const myName = prop(person, "myName");
console.log('age====', age);
console.log('myName===', myName);

相关文章

  • TS中keyof的作用以及应用

    官方定义:keyof该操作符可以用于获取某种类型的所有键,其返回类型是联合类型(keyof的应用多第三方库的源码中...

  • TS进阶之keyof

    刷完了type-challenges[https://github.com/type-challenges/typ...

  • keyof 和 类型查询

    ts v2.1+ keyof 操作符,用于类型查询 可以看出返回一个union类型。 在写代码中,可以利用keyo...

  • readonly

    测试case template.ts 相关知识点 keyof T获取 T 接口的所有的key(联合类型) in k...

  • typeof

    对于对象如果对象嵌套层级比较深,我们手动定义ts类型会很复杂 配合 keyof 获取所有枚举属性名 获取函数的类型...

  • 2021-08-11 typescript 学习笔记

    keyof keyof用于获取对象的key typeof

  • TS高级技巧(Pick,Partial等)

    1. keyof和in 1.1 keyof keyof 与 Object.keys 略有相似,只不过 keyo...

  • Typescript - 类型操作符&索引访问类型

    Typescript提供一些非常有用的类型操作符,如keyof/typeof,在日常开发中灵活应用这些函数利于编写...

  • Typescript - 基础(五)

    TS 类型检查机制:TS 编译器在做类型检查时,所秉承的一些原则,以及表现出的一些行为。作用是辅助开发,提高开发效...

  • js中闭包的作用以及应用

    对闭包的认识: 闭包的概念:函数A中,有一个函数B,函数B中可以访问函数A中定义的变量或者是数据,此时形成了闭包(...

网友评论

    本文标题:TS中keyof的作用以及应用

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