在TypeScript中,我可以这样声明一个泛型函数:
我知道我可以像这样使整个界面通用:
const fn: <T>(arg: T)=>Partial<T>
在这种情况下,TypeScript有时可以根据我传递给函数的实际参数推断出函数的类型参数。是否有一种类似的方法来定义一个泛型对象字面量,其类型参数可以基于其内容动态推断呢?例如:
interface XYZ {
obj: <T>{ arr: T[], dict: Partial<T> }
}
我知道我可以像这样使整个界面通用:
interface XYZ<T> {
arr: T[],
dict: Partial<T>
}
但我希望避免这种情况,因为这样每次使用接口时都需要提前声明通用类型。例如:
const x: XYZ
这不会起作用。如果我想要使声明通用,我被迫写成:
const x: XYZ<any>
但这并不允许TypeScript根据x
的实际内容动态推断特定的泛型类型。
type Foo = <T>( param: T ) => T
?这意味着类型Foo是一个具有参数类型为T的函数,并且函数返回类型也是T吗?与type Foo<T> = ( param:T ) => T
相比,有什么区别吗? - Archsx