在 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
关键字的一种简单方法是——我们从其他命名类型复制成员,并将我们想要的任何新成员添加到一个类型。
扩展类型很有用,因为它向代码的读者发出信号,表明这些类型在某种程度上是相关的。