在已铸造的对象上使用instanof检查类型

时间:2017-10-23 13:41:24

标签: javascript typescript

我有一个函数可以像这样返回类型为Bar的对象

myFunc() {
   return <Bar>asyncGet(); / fetches the info and casts the server response to Bar
}

比某些控制器,如果我做

let bar = myFunc();
// bar instanceof Bar doesn't return true...
由于我没有通过instanceof构造函数实现bar,所以

Bar没有按预期工作。

如何检查myFunc返回的对象是否为Bar类型?

2 个答案:

答案 0 :(得分:0)

由于您对asyncGet的调用可能是异步的 - 很可能会返回Promise。因此,您需要使用它或使用async/await方法。应该注意这样的事情:

myFunc() {
    return <Bar>asyncGet();
}
myFunc().then(bar => { /* do something with it*/});

async myFunc() {
   return <Bar>asyncGet();
}
let bar = await myFunc();

答案 1 :(得分:-2)

你可以告诉你的功能它必须返回什么类型:最后的栏。 例如:

DISTINCT ON

这样你的函数就必须返回类型bar。