我有一个API /函数,仅打算与泛型类型参数一起使用(它会基于泛型参数来增强参数的形状)。我想避免在没有通用参数的情况下调用API(因此从参数中推断类型),因为它违反了我的功能,并且会使API用户感到困惑。我宁愿编译器只是强制要求始终 一个通用类型参数。例如:
function foo<T>(arg: Config<T>) { ... }
如何确保类型参数T
始终由调用方指定?即foo<Bar>({ ...})
答案 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")
不会。