[英]Typescript inference based on the expected function type parameters
[英]Inference of function return type based on parameters
考虑这个例子:
export function foo(foo?: string) {
return foo ? { foo } : {};
}
const F1 = foo();
const F2 = foo("y");
编译器推断 F1 和 F2 的两种类型为:
{
foo: string;
} | {
foo?: never;
}
是否有可能说服编译器将F1
推断为{foo:string}
并将F2
推断为{}
?
你需要让你的 function 过载:
function foo(): {}
function foo<S extends string>(foo: S): { foo: S }
function foo<S extends string>(foo?: S) {
return foo ? { foo } : {};
}
const F1 = foo();
const F2 = foo("y");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.