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

Are generic type aliases possible in TypeScript?

打字稿 1.4 introduced type aliases。这些示例显示了如何使用像 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 前答案

不,还没有。您可以在 issue #1616.

中看到这方面的进展

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

Lately we've been quite busy with ES6 alignment and the recently announced Angular 2.0 related features. We will get to (re)evaluating some of these type system specific issues but there's no concrete date for issues like this at the moment. - Source

根据 release notes,泛型类型别名现在可以从 TypeScript 1.6 开始使用。