操作符keyof的作用是什么?

简介: 操作符keyof的作用是什么?

在 TypeScript 中,keyof 操作符用于获取一个类型的所有属性名组成的联合类型。它可以用来创建泛型函数或接口,用于操作对象的属性名称而不是属性值。

例如,假设我们有一个名为 Person 的接口:

interface Person {
  name: string;
  age: number;
  gender: "male" | "female";
}

如果我们想要定义一个函数,将 Person 对象中某个属性的值取出来,但是我们不想写死这个属性的名称,而是希望能够根据传入的字符串参数动态获取属性名称,那么就可以使用 keyof 操作符来定义泛型类型参数:

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

在这个例子中,我们定义了一个泛型函数 getProperty,它接受一个对象 obj 和一个属性名 key,并返回指定属性名的属性值。通过使用 keyof T 来约束类型参数 K,我们限制了 key 参数必须是 T 类型的属性名之一。

我们可以使用这个函数来获取 Person 对象中指定属性的值:

const person: Person = {
  name: "Alice",
  age: 30,
  gender: "female"
};
getProperty(person, "name"); // "Alice"
getProperty(person, "age"); // 30
getProperty(person, "gender"); // "female"
getProperty(person, "salary"); // Error: 类型“"salary"”的参数不能赋给类型“"name" | "age" | "gender"”的参数

总之,keyof 操作符可以用来获取类型的所有属性名组成的联合类型,而在泛型函数或接口中使用 keyof 操作符可以对属性名称进行操作,从而实现更加灵活和可重用的代码。

相关文章
|
6月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
50 3
|
6月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
42 1
|
7月前
|
C语言
逻辑操作符
条件操作符(三目操作符)是C语言中唯一的三元运算符,形式为:表达式1 ? 表达式2 : 表达式3。如果表达式1为真,执行并返回表达式2的结果;否则,执行并返回表达式3的结果。示例和练习展示了如何使用此操作符来比较和输出两个数中的较大值。
38 1
|
7月前
|
C语言
条件操作符和逻辑操作符(C语言零基础教程)
条件操作符和逻辑操作符(C语言零基础教程)
|
7月前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
7月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
42 0
|
存储 编译器 C语言
初始C语言——详细讲解操作符以及操作符的易错点
初始C语言——详细讲解操作符以及操作符的易错点
106 0
|
7月前
|
设计模式 存储 算法
【C++ 函数调用操作符】探究C++中的函数调用操作符 基础到高级应用
【C++ 函数调用操作符】探究C++中的函数调用操作符 基础到高级应用
338 0
|
7月前
|
存储 程序员 C++
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
153 0
|
7月前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
71 3