繁体   English   中英

基于参数推断function返回类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM