【问题标题】:Are generic type aliases possible in TypeScript?TypeScript 中是否可以使用泛型类型别名?
【发布时间】:2015-03-14 17:22:36
【问题描述】:

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

以下示例不起作用

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

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

【问题讨论】:

    标签: generics typescript alias


    【解决方案1】:

    从 TypeScript 1.6 开始,这已经成为可能。

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

    1.6 之前的答案

    不,还没有。你可以在issue #1616看到这方面的发展。

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 2019-11-04
      • 1970-01-01
      • 2013-03-01
      • 2014-08-19
      • 1970-01-01
      相关资源
      最近更新 更多