当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


TypeScript valueof和keyof的区别用法及代码示例


在这篇文章中,我们将学习之间的区别valueOf() key TypeScript.

ValueOf()方法

valueOf()TypeScript中的方法用于返回指定数字对象的原始值。

用法:

number.valueOf();

示例 1:在这个例子中,我们使用了ValueOf()方法.

Javascript


// valueOf() 
let num = new Number(30); 
console.log(num.valueOf());

输出:

30

示例 2:在这个例子中,我们使用了 valueOf() 方法.

Javascript


// valueOf() method 
let num4 = new Number(563); 
console.log("Number Method: tovalueOf()"); 
console.log(typeof num4 ) 
console.log(num4 ) 
console.log(num4 .valueOf())

输出:

Number Method: tovalueOf()
number
[Number: 563]
563

操作符键

在 TypeScript 中,keyof 运算符用于将类型的键提取为联合类型。它是一个类型运算符,允许您访问对象类型或接口的键。

用法:

type KeysOfType = keyof ObjectType;

例子:在这个例子中,我们定义了一个接口具有三个属性:姓名年龄,性别。我们还定义了一个变量类型的具有一些值。接下来我们定义一个函数获取属性它采用 T 类型的对象 obj 和 K 类型的键,其中 K 扩展 keyof T。这意味着 key 必须是对象 obj 的键之一。在 getProperty 函数中,我们只是返回 obj[key] 的值。最后,我们通过使用 person 对象和各种键(例如 “name”, “age” 和 “gender” )调用 getProperty 函数来测试它。正如我们在输出中看到的那样,所有三个调用都成功。

Javascript


interface Person { 
    name: string; 
    age: number; 
    gender: string; 
} 
const person: Person = { 
    name: "John", 
    age: 25, 
    gender: "male", 
}; 
function getProperty<T, K extends keyof T>(obj: T, key: K) { 
    return obj[key]; 
} 
console.log(getProperty(person, "name")); // "John" 
console.log(getProperty(person, "age")); // 25 
console.log(getProperty(person, "gender")); // "male"

输出:

John
25
male

TypeScript中valueof和keyof的区别

特征 valueOf keyof
目的 获取对象的原始值 获取属性名称的联合类型
用法 对象实例方法 类型定义中的 TypeScript 运算符
示例 typescript class MyObject { valueOf() { return this.value; } } typescript type MyType = { name: string; age: number; city: string; }; type MyKeys = keyof MyType;
适用性 一般 JavaScript 用法,不特定于 TypeScript TypeScript-specific,在通用编程场景中特别有用
返回类型 通常返回原始值(例如数字、字符串) 返回所有属性名称的联合类型


相关用法


注:本文由纯净天空筛选整理自amanv09大神的英文原创作品 Difference Between valueof and keyof in TypeScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。