TypeScript 面试题
目录

请解释 TypeScript 中的交叉类型 (Intersection Types) 的概念和用法。如何使用 & 操作符定义交叉类型?

· 约 3 分钟读完 · 第 47 / 256 章

推荐答案

在 TypeScript 中,交叉类型(Intersection Types)是将多个类型合并为一个类型的方式。通过使用 & 操作符,可以将多个类型组合在一起,形成一个新的类型,这个新类型包含了所有被组合类型的成员。

在上面的例子中,C 类型是 A 和 B 的交叉类型,因此 C 类型的对象必须同时包含 A 和 B 类型的所有属性。

本题详细解读

交叉类型的概念

交叉类型是 TypeScript 中的一种高级类型,它允许你将多个类型合并为一个类型。交叉类型的结果是一个新的类型,这个新类型包含了所有被组合类型的成员。这意味着,交叉类型的对象必须满足所有被组合类型的要求。

使用 & 操作符定义交叉类型

在 TypeScript 中,使用 & 操作符来定义交叉类型。& 操作符将多个类型连接在一起,形成一个新的类型。这个新类型包含了所有被组合类型的成员。

在这个例子中,EmployeePerson 类型是 Person 和 Employee 的交叉类型。因此,EmployeePerson 类型的对象必须同时包含 Person 和 Employee 类型的所有属性。

交叉类型的应用场景

交叉类型通常用于组合多个接口或类型别名,以创建一个更复杂的类型。这在需要组合多个类型的属性时非常有用,尤其是在处理对象时。

例如,假设你有一个 User 类型和一个 Admin 类型,你可以通过交叉类型来创建一个 AdminUser 类型,这个类型同时包含 User 和 Admin 的所有属性。

在这个例子中,AdminUser 类型是 User 和 Admin 的交叉类型,因此 AdminUser 类型的对象必须同时包含 User 和 Admin 类型的所有属性。