【问题标题】:How to prevent inferring generic type arguments with TypeScript?如何防止使用 TypeScript 推断泛型类型参数?
【发布时间】:2019-07-24 02:50:42
【问题描述】:

我有一个 API/函数,旨在仅用于泛型类型参数(它基于泛型参数强制参数的形状)。我想防止在没有泛型参数的情况下调用 API(从而从参数中推断类型),因为它违背了我的函数的目的,并且会使 API 的用户感到困惑。我宁愿编译器只是强制始终需要泛型类型参数。例如:

function foo<T>(arg: Config<T>) { ... } 

如何确保类型参数T 始终由调用者指定?即foo&lt;Bar&gt;({ ...})

【问题讨论】:

    标签: typescript typescript-generics


    【解决方案1】:

    它似乎还不是一个功能。这就是the docs 关于泛型和推理的全部内容:

    function identity<T>(arg: T): T { return arg; }
    let output = identity<string>("myString");  // type of output will be 'string'
    let output = identity("myString");  // type of output will be 'string'
    

    请注意,我们不必在尖括号 () 中显式传递类型;编译器只是查看了值“myString”,并将 T 设置为其类型。

    基本上就是这样......没有提示如何编写它,以便identity("myString") 引发错误但identity&lt;string&gt;("myString") 不会。

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 2016-11-01
      • 2017-10-04
      • 1970-01-01
      相关资源
      最近更新 更多