面试题答案
一键面试区别
- 联合类型(Union Types):表示取值可以为多种类型中的一种。它使用
|
符号来分隔不同的类型。意味着变量可以是这些类型中的任意一个,但在同一时刻只能是其中某一种类型。 - 交叉类型(Intersection Types):表示取值必须同时满足多种类型的要求。它使用
&
符号,意味着变量必须同时具备这些类型的所有属性和方法。
联合类型示例
function printId(id: number | string) {
console.log(`ID is: ${id}`);
}
printId(100);
printId('200');
在这个例子中,id
参数可以是number
类型或者string
类型,函数printId
可以接受这两种类型的值并打印。
交叉类型示例
interface User {
name: string;
}
interface Admin {
role: string;
}
let superUser: User & Admin = {
name: 'John',
role: 'admin'
};
这里定义了User
接口和Admin
接口,superUser
变量是User & Admin
交叉类型,它必须同时满足User
和Admin
接口的要求,即必须同时有name
和role
属性。