Typescript部分接口重载选择了错误的重载
当我试图用部分接口重载来定义重载my函数时,typescript选择了错误的重载Typescript部分接口重载选择了错误的重载,typescript,Typescript,当我试图用部分接口重载来定义重载my函数时,typescript选择了错误的重载 接口参数{ _id:字符串; 名称:字符串; } 接口结果{ _id:字符串; 名称:字符串; } 函数myFunction(arg:Args):结果; 函数myFunction(参数:部分):部分{ 返回arg; } //类型为“{u id:string;}”的参数不能分配给类型为“Args”的参数。 //类型“{u id:string;}”中缺少属性“name”,但类型“Args”中需要该属性 myFuncti
接口参数{
_id:字符串;
名称:字符串;
}
接口结果{
_id:字符串;
名称:字符串;
}
函数myFunction(arg:Args):结果;
函数myFunction(参数:部分):部分{
返回arg;
}
//类型为“{u id:string;}”的参数不能分配给类型为“Args”的参数。
//类型“{u id:string;}”中缺少属性“name”,但类型“Args”中需要该属性
myFunction({u id:'aa'});
试图使用myFunction({u id:'aa'}作为部分函数)代码>没有帮助
我如何才能做到这一点?最后一个签名是实现签名,而不是可公开访问的签名的一部分。所以你的函数真的有一个可访问的签名函数myFunction(arg:Args):Result代码>因此出现错误
function myFunction(arg: Args): Result;
function myFunction(arg: Partial<Args>): Partial<Result>
function myFunction(arg: Partial<Args>): Partial<Result> {
return arg;
}
myFunction({ _id: 'aa' });// ok now
函数myFunction(arg:Args):结果;
函数myFunction(arg:Partial我要补充的是,重载顺序很重要,因为typescript将取第一个有效的,因此在这种情况下,您应该始终将部分放在最后,否则将永远不会取另一个