是否可以在不引入与实现完全匹配的签名的情况下定义此专用过载?
on(eventName: string, cb: Function);
on(eventName: "view", cb: (args: {
foo: {
}
}) => void);
on(eventName: string, cb: Function) {
}
当我删除它时,我收到此错误:
专门的过载签名不能分配给任何人 非专业签名。
答案 0 :(得分:9)
专门的重载是其他一个重载签名的特殊性(实现签名不可见,因此不计算)。
当您使用专门的重载时,必须至少有一个专用版本“特殊”的非专用签名。
专用签名的返回类型必须是非专用签名的子类型。
简而言之,即使它与实现签名相同,也必须具有重载。