首页 > 解决方案 > 如何在 TypeScript/Angular 中测试类型?

问题描述

我有一个函数可以返回 3 种可能类型中的 1 种:

getFoo(): Observable<Foo> | Promise<Foo> | Foo {

    //return 1 of 3 types

}

那么如何在调用后确保确切的类型:

const foo = someClassObj.getFoo();

如果我现在想从 foo 中获取数据,我怎么知道它是 Observable、Promise 还是类实例 Foo?当我尝试 instanceof 或 typeof 时,它们只检测到“对象”。

标签: javascriptangulartypescript

解决方案


您可以使用instanceof关键字。

const foo: any = someClassObj.getFoo();

if (foo instanceof Observable) {
} else if (foo instanceof Promise) {
} else if (foo instanceof Foo) {
}

推荐阅读