乐闻世界logo
搜索文章和话题

What is an "Intersection" type in TypeScript?

1 个月前提问
1 个月前修改
浏览次数14

1个答案

1

在TypeScript中,交集类型是一种高级类型,它允许我们将多个类型组合成一个类型。这让我们能够将现有的类型按照需要组合起来,创建出具有多个类型所有属性的新类型。

交集类型定义

交集类型使用&符号定义。如果你有两个对象类型,Type1和Type2,你可以使用Type1 & Type2来创建一个新类型,这个新类型将包含Type1和Type2的所有属性。

示例:

假设我们有两个对象类型,CarTruck

typescript
type Car = { wheels: number; drive: () => void; }; type Truck = { cargo: boolean; loadCargo: (weight: number) => void; };

现在,如果我们需要一个类型,既可以作为汽车驾驶,又可以装载货物,我们可以使用交集类型来定义这个新类型:

typescript
type CarTruck = Car & Truck; let vehicle: CarTruck = { wheels: 4, drive: function() { console.log("Driving..."); }, cargo: true, loadCargo: function(weight: number) { console.log("Loading " + weight + " kg of cargo..."); } }; // 使用CarTruck类型的对象 vehicle.drive(); vehicle.loadCargo(1000);

在这个例子中,CarTruck类型继承了Car类型的wheelsdrive属性以及Truck类型的cargoloadCargo属性。这使得vehicle对象可以调用两个原始类型的所有方法和属性。

使用场景

交集类型在需要组合多种类型特征的场景中非常有用,例如在大型项目中,有时需要根据不同的业务逻辑组合不同的模型或接口。通过使用交集类型,可以灵活地构建满足多种需求的类型,而无需重新定义大量新的类型,从而使代码更加干净、易于维护。

2024年8月2日 13:52 回复

你的答案