【发布时间】:2019-02-17 12:54:26
【问题描述】:
这是一些条件类型的代码
class A {
public a: number;
}
class B {
public b: number;
}
type DataType = "a" | "b";
type TData<T extends DataType> =
T extends "a" ? A :
T extends "b" ? B :
never;
现在我想使用条件类型作为从函数参数到其返回类型的链接。我试图以不同的方式实现这一目标,但没有结果:
function GetData<T extends DataType>(dataType: T): TData<T> {
if (dataType == "a")
return new A();
else if (dataType == "b")
return new B();
}
什么是正确的语法? TypeScript 2.8 可以吗?
更新
已经有一个opened issue on github 涵盖了我的示例。 所以目前的答案是“不,但将来可能”。
【问题讨论】:
标签: typescript conditional-types typescript2.8