在 TypeScript 中是否可以使用泛型类型别名



TypeScript 1.4引入了类型别名。这些示例显示了如何使用像type MyGreeter = Greeter<string>这样的别名,但是否可以使用通用别名?

以下示例不起作用

type GenericAlias<T> = OriginalType<T>
type GenericAlias = OriginalType<T>

是否可以在不进行类型转换的情况下为泛型类型添加别名?

从 TypeScript 1.6 开始,这现在可以了。

// from #1616:
type Lazy<T> = T | (() => T);
var s: Lazy<string>;
s = "eager";
s = () => "lazy";

1.6 之前的答案

不,还没有。您可以在问题 #1616 中看到这方面的进展。

至于这个功能什么时候可用...

最近

我们一直忙于ES6对齐和最近宣布的Angular 2.0相关功能。我们将(重新)评估其中一些类型系统特定问题,但目前此类问题没有具体日期。-源

根据发行说明,从 TypeScript 1.6 开始,现在可以使用泛型类型别名。

最新更新