主页 > 游戏开发  > 

TS中|和有什么区别

TS中|和有什么区别

在 TypeScript 中,| 和 & 是用于组合类型的操作符,但它们的作用和行为完全不同:


1. | (联合类型, Union Types)

作用:

表示一个值可以是多种类型中的一种。

使用 | 将多个类型组合成一个联合类型。

使用场景:

当一个变量或参数可能是多种类型时。

常用于处理不确定类型的场景。

示例:

let value: string | number; value = "Hello"; // 合法 value = 42; // 合法 value = true; // 错误,boolean 不在联合类型中

注意事项:

在使用联合类型的值时,只能访问所有类型共有的属性或方法。

如果需要访问特定类型的属性或方法,需要进行类型检查或类型断言。

function printValue(value: string | number) { if (typeof value === "string") { console.log(value.toUpperCase()); // 安全,value 是 string } else { console.log(value.toFixed(2)); // 安全,value 是 number } }
2. & (交叉类型, Intersection Types)

作用:

表示一个值必须同时满足多个类型的条件。

使用 & 将多个类型组合成一个交叉类型。

使用场景:

当需要合并多个类型的属性或方法时。

常用于扩展对象类型或接口。

示例:

interface Person { name: string; age: number; } interface Employee { id: number; role: string; } type EmployeePerson = Person & Employee; const employee: EmployeePerson = { name: "Alice", age: 30, id: 123, role: "Developer", };

注意事项:

交叉类型会将所有类型的属性合并,如果属性名相同但类型不同,可能会导致冲突。

交叉类型通常用于对象类型的组合。


3. | 和 & 的区别 特性| (联合类型)& (交叉类型)含义值可以是多种类型中的一种值必须同时满足多个类型的条件使用场景不确定类型的场景合并多个类型的属性或方法类型检查只能访问共有属性或方法可以访问所有类型的属性或方法示例string | numberPerson & Employee

 

 


4. 总结

| (联合类型):

表示“或”的关系,值可以是多种类型中的一种。

适合处理不确定类型的场景。

& (交叉类型):

表示“与”的关系,值必须同时满足多个类型的条件。

适合合并多个类型的属性或方法。

根据具体需求选择合适的操作符,可以更灵活地定义和使用类型。

标签:

TS中|和有什么区别由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“TS中|和有什么区别