在打字稿中,我可以这样声明一个泛型函数:
const fn: <T>(arg: T)=>Partial<T>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,TypeScript有时可以根据我传递给它的实际参数来推断函数的类型参数。有没有类似的方法来定义可以根据其内容动态推断其类型参数的泛型对象文字?就像是:
interface XYZ {
obj: <T>{ arr: T[], dict: Partial<T> }
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使整个接口通用,如下所示:
interface XYZ<T> {
arr: T[],
dict: Partial<T>
}
Run Code Online (Sandbox Code Playgroud)
但我想避免这种情况,因为那时我每次使用接口时都必须提前声明泛型。例如
const x: XYZ
Run Code Online (Sandbox Code Playgroud)
不管用。如果要使该声明具有一般性,则必须写:
const x: XYZ<any>
Run Code Online (Sandbox Code Playgroud)
但这不允许TypeScript根据以下内容的实际内容动态推断特定的泛型类型: x