MST
星途 面试题库

面试题:TypeScript中如何构建并使用联合类型与交叉类型

请阐述在TypeScript中联合类型(Union Types)和交叉类型(Intersection Types)的定义、构建方式及使用场景,并分别举例说明。例如,定义一个表示可能是字符串或数字的联合类型,并在函数参数中使用;定义一个包含两个已有接口属性的交叉类型,并创建该交叉类型的实例。
33.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

联合类型(Union Types)

  1. 定义:联合类型表示一个值可以是几种类型之一。
  2. 构建方式:使用 | 分隔不同的类型。
  3. 使用场景:当一个变量或函数参数可能具有多种类型,但同一时间只能是其中一种类型时使用。
  4. 示例
// 定义联合类型
let value: string | number;
value = 'hello';
value = 42;

// 在函数参数中使用联合类型
function printValue(val: string | number) {
    console.log(val);
}
printValue('world');
printValue(123);

交叉类型(Intersection Types)

  1. 定义:交叉类型是将多个类型合并为一个类型,这个类型包含了所有类型的特性。
  2. 构建方式:使用 & 连接不同的类型。
  3. 使用场景:当需要一个对象同时满足多个类型的要求时使用。
  4. 示例
// 定义两个接口
interface A {
    name: string;
}
interface B {
    age: number;
}

// 定义交叉类型
type AB = A & B;

// 创建交叉类型的实例
let person: AB = {
    name: 'John',
    age: 30
};