typescript 类型操作符
TypeScript 是一种静态类型检查的 JavaScript 超集语言,它引入了许多新的类型操作符和语法特性,以提供更强大的类型系统和更好的代码可读性。
类型操作符是用来定义和操作 TypeScript 中的类型的符号。它们允许我们定义变量、函数参数、返回值和其他表达式的类型,并对其进行操作和组合。在本文中,我们将深入探讨 TypeScript 中常用的类型操作符。
一、基本类型操作符
1. typeof
typeof 是一个一元操作符,它用来获取变量或表达式的类型。它返回的是一个字符串,表示该变量或表达式的类型名称。例如:
typescript
let num: number = 123;
console.log(typeof num);  输出: "number"
我们也可以使用 typeof 来检查函数的返回值类型。例如:
typescript
function add(a: number, b: number): number {
  return a + b;
}
console.log(typeof add);  输出: "function"
2. keyof
keyof 是一个索引类型查询操作符,它用来获取对象类型的所有属性名。例如:
typescript
type Person = {
  name: string;
  age: number;
};
type PersonKeys = keyof Person;
PersonKeys 的类型为 "name"  "age"
我们可以使用 keyof 结合泛型来编写一些复用性更高的代码。例如,我们可以编写一个函数,用于读取对象的指定属性:
typescript
function getValue<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const person: Person = {
  name: "Alice",
  age: 25,
};
const nameValue: string = getValue(person, "name");
console.log(nameValue);  输出: "Alice"
3. keyof 和 typeof 的结合使用
我们可以结合使用 keyof 和 typeof 来获取对象类型属性的类型。例如:
typescript
type Person = {
  name: string;
  age: number;
};
const person: Person = {
  name: "Alice",
  age: 25,
javascript高级语法
};
type PersonPropertyTypes = {
  [K in keyof Person]: typeof person[K];
};
PersonPropertyTypes 的类型为 { name: string; age: number; }
二、高级类型操作符
1. 索引访问操作符 []
索引访问操作符 [] 用于访问对象或类型的属性类型。例如:
typescript
type Person = {
  name: string;
  age: number;
};
type PersonName = Person["name"];
PersonName 的类型为 string
2. keyof 和 [] 的结合使用
我们可以结合使用 keyof 和 [] 来获取对象类型属性的属性类型。例如:
typescript
type Person = {
  name: string;
  age: number;
};
type PersonPropertyTypes = {
  [K in keyof Person]: Person[K];
};
const person: PersonPropertyTypes = {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。