TypeScript版本: 3.2.0-dev.20181113
搜索词:
rest元组,交集,并集,错误,参数,位置错误
代码
declare function boop<T extends any[]>(...args: T & [number, string]): void;
boop(123, 456); // error
// ~~~ <-- error on first argument
// Argument of type '[123, 456]' is not assignable to parameter
// of type '[number, number] & [number, string]'.
// Type '[123, 456]' is not assignable to type '[number, string]'.
// Type '456' is not assignable to type 'string'.
预期行为:
我期望第二个参数( 456
)出现错误,因为那是导致失败的参数,如错误信息所示。(或者如果将其解释为无法匹配rest参数,我可能期望两个参数都出现错误。)
实际行为:
实际错误出现在第一个参数( 123
)。这是一个小问题,似乎只在上面的交集与类型参数的情况下出现(具体类型如 ...args: [number, string] & [number, string]
工作正常),但我想报告一下,以防它有一个简单的解决方法。
(自我提醒或感兴趣的非自我提醒:在一个 Stack Overflow answer 中遇到了这个问题)
** playground链接:**
🔗
相关问题:
还没有找到任何问题。有人找到任何问题吗?
2条答案
按热度按时间oxcyiej71#
我认为工会也会出现同样的情况:
zte4gxcn2#
我看到泛型甚至不需要用来重现这个:
Playground链接