考虑以下:
interface Man {
name: string
}
interface Dog {
breed: string
}
let manDog: Man | Dog;
Run Code Online (Sandbox Code Playgroud)
是否可以创建一种ManDog等效于的类型,Man | Dog以便可以执行此操作:
let manDog: ManDog;
Run Code Online (Sandbox Code Playgroud)
您可以使用type关键字 (not let)为您的联合类型创建一个新类型和别名。
https://www.typescriptlang.org/docs/handbook/advanced-types.html
interface Man {
name: string
}
interface Dog {
breed: string
}
type ManOrDog = Man | Dog;
Run Code Online (Sandbox Code Playgroud)
要有效地使用这些联合类型,请不要忘记查看类型保护,在同一个文档链接中进行了解释。
编辑:为什么我更换了新的类型的别名:
一个新类型是 another Interface,你可以扩展等等。
您不能创建Interface扩展由type.
此外,错误消息不会显示ManOrDog。
在这种情况下,对于联合类型,别名是唯一的方法。
对于路口键入然而,你将有一个之间的选择新型带有
interface ManAndDog extends Man, Dog { }
Run Code Online (Sandbox Code Playgroud)
和一个别名
type ManAndDog = Man & Dog;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5020 次 |
| 最近记录: |