如何在 TypeScript 中扩展类型

在 TypeScript 中扩展类型

How to extend a Type in TypeScript

使用交集类型扩展 TypeScript 中的类型,例如
type TypeB = TypeA & {age: number;}. 交集类型是使用&与号定义的,用于组合现有的对象类型。您可以&
根据需要多次使用该运算符来构造一个类型。

索引.ts
type TypeA = { name: string; }; type TypeB = TypeA & { age: number; }; type TypeC = TypeB & { country: string; }; const example: TypeC = { name: 'Tom', age: 30, country: 'Chile', };

交集类型
是使用
&运算符定义的,并允许我们扩展现有的对象类型。

您可以将属性添加到内联类型或使用它来组合现有对象类型。

索引.ts
type TypeA = { name: string; }; type TypeB = { age: number; country: string; }; type TypeC = TypeA & TypeB; const example: TypeC = { name: 'Tom', age: 30, country: 'Chile', };

您也可以使用&运算符来扩展具有已定义接口的对象类型。

索引.ts
type TypeA = { name: string; age: number; }; interface InterfaceA { country: string; } type TypeB = TypeA & InterfaceA; const example: TypeB = { name: 'Tom', age: 30, country: 'Chile', };

您可以&根据需要多次使用该运算符来构造一个类型。

索引.ts
type TypeA = { name: string; }; type TypeB = { country: string; }; type TypeC = { age: number; }; type TypeD = TypeA & TypeB & TypeC; const example: TypeD = { name: 'Tom', age: 30, country: 'Chile', };

如果必须使用类型扩展接口,则必须使用
extends
关键字。

索引.ts
type TypeA = { name: string; country: string; }; interface InterfaceA extends TypeA { age: number; } const example: InterfaceA = { name: 'Tom', age: 30, country: 'Chile', };

如果您必须扩展具有多种类型的接口,请用逗号分隔这些类型。

索引.ts
type TypeA = { name: string; }; type TypeB = { country: string; }; interface InterfaceA extends TypeA, TypeB { age: number; } const example: InterfaceA = { name: 'Tom', age: 30, country: 'Chile', };

考虑&运算符和extends关键字的一种简单方法是——我们从其他命名类型复制成员,并将我们想要的任何新成员添加到一个类型。

扩展类型很有用,因为它向代码的读者发出信号,表明这些类型在某种程度上是相关的。

发表评论