如何防止使用TypeScript推断通用类型参数?

时间:2019-03-02 04:50:14

标签: typescript typescript-generics

我有一个API /函数,仅打算与泛型类型参数一起使用(它会基于泛型参数来增强参数的形状)。我想避免在没有通用参数的情况下调用API(因此从参数中推断类型),因为它违反了我的功能,并且会使API用户感到困惑。我宁愿编译器只是强制要求始终 一个通用类型参数。例如:

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

如何确保类型参数T始终由调用方指定?即foo<Bar>({ ...})

1 个答案:

答案 0 :(得分:0)

它似乎还不是一项功能。 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<string>("myString")不会。