强类型返回泛型函数的适当方法是使用泛型类型参数和类型推断。在 TypeScript 中,可以使用类型参数来定义泛型函数,并通过类型推断来确保函数返回正确的类型。
例如,可以定义一个泛型函数 getData
,该函数接受一个类型参数 T
和一个键 K
,并返回一个类型为 T
的对象,该对象包含键 K
:
function getData<T, K extends keyof T>(key: K): T[K] {
// 获取数据
const data = getDataFromServer<T>();
return data[key];
}
在这个例子中,函数 getData
接受两个类型参数:T
和 K
。T
是返回值的类型,K
是键的类型,它必须是 T
的一个属性。函数返回一个类型为 T[K]
的值,即 T
对象中键为 K
的属性的类型。
通过类型推断,可以在调用函数时不必指定类型参数:
interface User {
name: string;
age: number;
}
const name = getData<User, 'name'>('name'); // 类型为 string
const age = getData<User, 'age'>('age'); // 类型为 number
在这个例子中,通过指定类型参数 User
和 'name'
,函数返回一个类型为 string
的值。同样,通过指定类型参数 User
和 'age'
,函数返回一个类型为 number
的值。
总之,强类型返回泛型函数的适当方法是使用泛型类型参数和类型推断,以确保函数返回正确的类型。
领取专属 10元无门槛券
手把手带您无忧上云