Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript 2.8.3:没有公共属性的联合类型_Javascript_Typescript - Fatal编程技术网

Javascript Typescript 2.8.3:没有公共属性的联合类型

Javascript Typescript 2.8.3:没有公共属性的联合类型,javascript,typescript,Javascript,Typescript,以下内容在Typescript 2.3.5上运行良好,但在2.8.3上不再如此 [ts] 类型为“typeof A”的参数不能分配给类型为“TYPES”的参数。 类型“A的类型”不能分配给类型“C”。 类型“typeof A”中缺少属性“variableC” 如何更改此结构以使其再次工作?类型指定A/B/C类的实例,而类型值是A/B/C类本身 应该是: type TYPES = typeof A | typeof B | typeof C; function doStuff(typ

以下内容在Typescript 2.3.5上运行良好,但在2.8.3上不再如此

[ts] 类型为“typeof A”的参数不能分配给类型为“TYPES”的参数。 类型“A的类型”不能分配给类型“C”。 类型“typeof A”中缺少属性“variableC”

如何更改此结构以使其再次工作?

类型指定A/B/C类的实例,而类型值是A/B/C类本身

应该是:

   type TYPES = typeof A | typeof B | typeof C;

   function doStuff(types: TYPES) {
       switch (types) {
       case A:
           break;
       case B:
           break;
       case C:
           break;
       }
   }
   doStuff(A);

我真的不知道你想在这里做什么,但我最好的猜测是你应该做一些类似的事情:iftypes instanceof A{…}。很高兴这有帮助。
   type TYPES = typeof A | typeof B | typeof C;

   function doStuff(types: TYPES) {
       switch (types) {
       case A:
           break;
       case B:
           break;
       case C:
           break;
       }
   }
   doStuff(A);