首页 > 其他分享 >TypeScript 的联合类型、交叉类型、映射类型

TypeScript 的联合类型、交叉类型、映射类型

时间:2024-05-14 18:42:01浏览次数:19  
标签:TypeScript string 映射 number value 类型

当使用 TypeScript 时,联合类型、交叉类型和映射类型是常见的高级类型概念,它们提供了强大的工具来处理各种复杂的类型情况。

### 联合类型(Union Types):

联合类型允许一个值属于多个类型之一。使用 `|` 符号来表示联合类型。例如:

```typescript
let value: string | number;

value = "hello"; // 可以是字符串
value = 10; // 也可以是数字
```

在这个例子中,`value` 可以是 `string` 类型或 `number` 类型。

### 交叉类型(Intersection Types):

交叉类型允许将多个类型合并为一个类型。使用 `&` 符号来表示交叉类型。例如:

```typescript
interface A {
foo: number;
}

interface B {
bar: string;
}

let obj: A & B;

obj = { foo: 123, bar: "hello" }; // 必须同时包含 A 和 B 中的属性
```

在这个例子中,`obj` 必须同时包含 `A` 和 `B` 接口中定义的属性。

### 映射类型(Mapped Types):

映射类型允许根据现有类型创建新类型。它们以现有类型中的属性为基础,并使用映射函数转换它们。例如,`Partial<T>` 类型可以将所有属性从类型 `T` 中变为可选的:

```typescript
interface Person {
name: string;
age: number;
}

type PartialPerson = Partial<Person>;

// 等同于
// interface PartialPerson {
// name?: string;
// age?: number;
// }
```

在这个例子中,`Partial<T>` 接受一个类型 `T`,并将其所有属性变为可选的。

这些高级类型为 TypeScript 提供了更大的灵活性和表达能力,使得开发者能够更好地处理各种复杂的类型情况。

标签:TypeScript,string,映射,number,value,类型
From: https://www.cnblogs.com/ygyy/p/18191943

相关文章

  • TypeScript 中,元组(Tuple)
    在TypeScript中,元组(Tuple)是一种特殊的数据结构,它允许你表示一个固定长度的、类型确定的数组。与普通的数组不同,元组中的每个位置可以拥有不同的数据类型。元组的定义方式是将多个类型用逗号分隔,然后用方括号 [] 将它们括起来。例如:letmyTuple:[string,number,boolean];......
  • TypeScript 枚举类型(enum),声明常量
    enumErrorShowType{ SILENT=0, WARN_MESSAGE=1, ERROR_MESSAGE=2, NOTIFICATION=3, REDIRECT=9,} 这是一个枚举类型(enum)的定义,名为ErrorShowType。枚举类型是一种数据类型,它允许你定义一组命名的常量值。在这个例子中,ErrorShowType枚举类型包含......
  • TypeScript 的声明文件 xxx.d.ts
    在TypeScript中,declare 关键字用于创建类型声明,它告诉编译器某些变量已经存在,但是在编译时不会进行实际的生成代码操作。它通常用于描述外部的、已存在的JavaScript代码的结构和类型,或者用于定义全局变量、函数、类等,以便在TypeScript项目中进行类型检查和代码提示,但不会在最......
  • TypeScript类型断言
    proxy:proxy[REACT_APP_ENVaskeyoftypeofproxy],这行代码看起来是在设置代理服务器的配置,通常在React应用中使用。让我逐步解释它:proxy 是一个对象,用于配置代理服务器的相关信息。[REACT_APP_ENVaskeyoftypeofproxy] 这一部分是一个属性访问表达式,它使用了Ty......
  • TypeScript 联合类型
    联合类型是TypeScript中的一种类型,它表示一个值可以是多种类型之一。通过使用竖线`|`将多个类型连接在一起,就可以创建联合类型。例如,考虑以下代码片段:```typescriptletmyVariable:string|number;```这里的`myVariable`是一个变量,它的类型是`string|number`。......
  • 打开symlink类型的文件报错:无法遵循符号链接,因为其类型已禁用
     参考:https://blog.csdn.net/KEVERSO/article/details/84780368在英文系统中对应的是“Thesymboliclinkcannotbefollowedbecauseitstypeisdisabled.”简单的解决方案是,运行以下命令:FSUtilBehaviorSetSymlinkEvaluationL2L:1R2R:1L2R:1R2L:1Windows把文件......
  • TypeScript 的泛型(Generics)
    TypeScript的泛型(Generics)是一种在编写可复用、灵活且类型安全的代码时非常有用的特性。泛型允许你在编写函数、类或接口时使用参数化类型,这些参数化类型在使用时可以被具体指定。基本概念泛型允许你编写能够适用于各种类型的代码,而不是固定于一种特定类型。在函数、类或接口中......
  • TypeScript 对象数组的类型
    在TypeScript中,你可以使用接口(interface)来定义这种对象数组的类型。接口允许你描述对象的形状,从而确保你的数据结构符合预期。对于给定的数据 [{"name":"小明","age":"18"},{"name":"小东","age":"10"}],你可以这样声明一个接口:interfacePerson{......
  • TypeScript 的类型注解
    在TypeScript中,类型注解是一种用于指定变量、函数参数、函数返回值等处的类型信息的语法。通过类型注解,你可以告诉TypeScript编译器某个变量的类型是什么,以便在编译时进行类型检查,并提供更好的代码提示和错误检测。类型注解通常使用冒号 : 后跟着一个类型来指定。例如:let......
  • TypeScript主要类型
    TypeScript支持多种类型,其中一些主要类型包括:基本类型:number:表示数字,可以是整数或浮点数。string:表示字符串。boolean:表示布尔值,即 true 或 false。null 和 undefined:分别表示null和undefined。symbol:表示唯一的、不可变的值。复合类型:array:表......