function f1<T, U>(x: T, y: U) {
return x === y
}
为什么打字稿会抱怨?我不确定我是否完全理解编译错误消息的含义。
编译错误:
TS2367:由于类型“ T”和“ U”没有重叠,因此此条件将始终返回“ false”。
答案 0 :(得分:2)
答案在消息本身中。在您的情况下,T和U没有重叠,因为它们代表两种不同的类型。 TypeScript的目的是帮助您预防这种情况。
因此,如果您告诉编译器y可能是x,则它将起作用。喜欢
function f1<T, U>(x: T, y: U | T) {
return x === y;
}
或
function f1<T, U extends T>(x: T, y: U) {
return x === y;
}