推断接口中的泛型值可以通过以下几种方式实现:
interface MyInterface<T> {
getValue: () => T;
}
function inFunction<T>(value: T): MyInterface<T> {
return {
getValue: () => value,
};
}
const result = inFunction<string>("Hello");
console.log(result.getValue()); // 输出:Hello
在调用inFunction
函数时,通过<string>
来明确指定泛型的类型为string
,从而推断出接口中的泛型值为string
。
interface MyInterface<T> {
getValue: () => T;
}
function processValue<T>(value: MyInterface<T>) {
console.log(value.getValue());
}
const result = {
getValue: () => "Hello",
};
processValue(result); // 输出:Hello
在调用processValue
函数时,编译器可以根据传入的参数result
的类型推断出接口中的泛型值为string
。
interface MyInterface<T = string> {
getValue: () => T;
}
function inFunction<T>(value: T): MyInterface<T> {
return {
getValue: () => value,
};
}
const result = inFunction("Hello");
console.log(result.getValue()); // 输出:Hello
在上述例子中,定义了一个泛型接口MyInterface
,并为泛型参数T
指定了默认值为string
。在调用inFunction
函数时,没有明确指定泛型类型,因此使用默认值string
作为泛型的类型。
总结起来,推断接口中的泛型值可以通过类型断言、类型推断和默认值来实现。具体使用哪种方式取决于具体的场景和需求。
领取专属 10元无门槛券
手把手带您无忧上云