当前位置:  开发笔记 > 编程语言 > 正文

TypeScript中的联合类型 - 我能实现这一目标吗?

如何解决《TypeScript中的联合类型-我能实现这一目标吗?》经验,为你挑选了1个好方法。

我想实现以下目标:

class MyClass {    
  boolProp: boolean;  
}

let a: string | MyClass;
a.boolProp = false; // error

最后一行抛出一个错误,因为这就是typescript的工作原理.

我可以在没有错误的情况下实现上述目的,但是没有挡板吗?我只是希望能够告诉编译器某个变量或者是A型或B的,所以应该考虑它的"真实"的工会类型的属性和方法,而不只是常见的.

我熟悉其他语言的这种行为,根据我的喜好,这似乎是打字稿的功能要求.

我错过了什么吗?



1> Paarth..:

您希望补码键入联合,键入交集.

class MyClass {    
  boolProp: boolean;  
}

let a: string & MyClass;
a.boolProp = false; // no error

类型联合会宣布变量是一种或另一种类型,因此您可以可靠访问的唯一属性是两者共有的属性.类型交集宣布变量满足两个类型契约,因此您可以访问属于其任一组件类型的属性 - 这是您想要的.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有