【发布时间】:2020-02-24 20:08:28
【问题描述】:
我有 2 个接口:TypeA 和 TypeB。
我的 React 脚本接收到类型为 TypeA|TypeB 的对象 Object。
我有一个函数doSomething(attribute:TypeA)
我想将Object 作为doSomething(Object) 这样的属性传递,
但是TS说
输入'TypeA | TypeB' 不可分配给类型'TypeA'。 类型“TypeB”缺少类型“TypeA”的以下属性:prop1、prop2、prop3。
也许我可以设置一个新的临时变量,前提是它的类型为TypeA,然后将其传递给函数?
const tempVar:Type1 = Object
我试过了
const tempVar:Type1 = Object instanceof Type` ? Object : undefined ;
但除了上述错误之外,我还收到此错误
'Type1' 仅指一种类型,但在这里用作值。
由于我无法更改函数doSomething() 以接受这两种类型,因此是否有解决方法?
【问题讨论】:
-
这两种类型的区别是什么?换句话说,如果你正在编写纯 javascript,你会检查什么来判断你正在处理什么样的对象?
-
@NicholasTower 我可以检查一个名为
prop1:string的道具:` if(Object.prop1 === 'value1'){ doSomething(Object); } `
标签: typescript