我想检查泛型的类型而没有实例。
类似的东西:
doThing<T extends Foo | Bar>(someArg: string): T {
if (T extends Foo) return functionThatReturnsFoo(someArg);
else return functionThatReturnsBar(someArg);
}
有可能吗?
答案 0 :(得分:0)
如@jcalz所述,这是不可能的,因为将TS编译为JS时会删除类型系统。
可能的解决方案是:
doThing
中,然后使返回值成为并集类型就我而言,我刚刚创建了两个具有相似逻辑的专用功能。它的DRY更少,但更易于阅读和测试。