Boa*_*and 5 typescript typescript-typings
我想实现以下目标:
class MyClass {
boolProp: boolean;
}
let a: string | MyClass;
a.boolProp = false; // error
Run Code Online (Sandbox Code Playgroud)
最后一行抛出一个错误,因为这就是typescript的工作原理.
我可以在没有错误的情况下实现上述目的,但是没有挡板吗?我只是希望能够告诉编译器某个变量或者是A型或B的,所以应该考虑它的"真实"的工会既类型的属性和方法,而不只是常见的.
我熟悉其他语言的这种行为,根据我的喜好,这似乎是打字稿的功能要求.
我错过了什么吗?
您希望补码键入联合,键入交集.
class MyClass {
boolProp: boolean;
}
let a: string & MyClass;
a.boolProp = false; // no error
Run Code Online (Sandbox Code Playgroud)
类型联合会宣布变量是一种或另一种类型,因此您可以可靠访问的唯一属性是两者共有的属性.类型交集宣布变量满足两个类型契约,因此您可以访问属于其任一组件类型的属性 - 这是您想要的.
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |