美文网首页
keyof语法结合泛型的用途

keyof语法结合泛型的用途

作者: 泡杯感冒灵 | 来源:发表于2022-04-14 22:01 被阅读0次
如果有一个类,new的时候传入一个对象,想要通过index或者key值去获取对象里的某一项内容的时候,又想去推断出返回值的正确的类型,就可以通过keyof语法结合泛型的语法实现。注意:<T extends keyof Person>(key: T):Person[T]
interface Person{
  name: string;
  age: number;
  gender: string;
}

// keyof 第一次循环
// type T = 'name';
// key: 'name';
// Person['name'];

// keyof 第二次循环
// type T = 'age';
// key: 'age';
// Person['age'];

// keyof 第三次循环
// type T = 'gender';
// key: 'gender';
// Person['gender'];

class Teacher {
  constructor(private info: Person) { }
  getInfo<T extends keyof Person>(key: T):Person[T] {
    return this.info[key];
  }
}

const teacher = new Teacher({
  name: 'yang',
  age: 20,
  gender: 'male'
});

const test = teacher.getInfo('name');
console.log(test);
原理就是 类型也可以是 一个字符串
// 根据类型也可以是一个字符串,这个特性
type NAME = 'name';
const abc: NAME = 'name';
const abc: NAME = 'hello'; // 报错

相关文章

  • keyof语法结合泛型的用途

    如果有一个类,new的时候传入一个对象,想要通过index或者key值去获取对象里的某一项内容的时候,又想去推断出...

  • Java泛型详解

    一、泛型简介 1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic ...

  • 【阿里P8大牛教你Android入门之路(java篇)】Java

    一、泛型简介 1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic ...

  • Java泛型总结

    一、泛型简介1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic S...

  • TypeScript 泛型中keyof的使用

    来源:https://zhuanlan.zhihu.com/p/365973520[https://zhuanla...

  • 泛型 - 类、方法和接口

    泛型类 泛型类的语法 声明泛型类:class class-name { } 创建...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • 4.泛型

    1.泛型的概念 2.jdk1.4和jdk1.5的变化 3.泛型语法 3.1泛型方法 3.2泛型类 3.3泛型接口 ...

  • 泛型

    泛型 1.为什么要有泛型?2.泛型有什么好处?3.Swift泛型语法4.泛型的使用 为什么要有泛型 在编程世界中,...

  • Java 泛型知识点

    泛型 泛型函数 类型擦除 泛型用途 简单实例 传入长度,返回指定类型的数组 http://www.importne...

网友评论

      本文标题:keyof语法结合泛型的用途

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