我们知道,任何数据类型是TypeScript中所有其他数据类型的超级类型。我很好奇为什么可以将 any 变量传递给需要 number |未定义类型?
let v1: any = 'abc';
let v2: number | undefined = 5;
function foo(p: number | undefined): void {
if (typeof p === "number") {
console.log(Math.pow(p, 2));
} else {
p;
console.log("p is undefined");
}
}
foo(v1); // output: p is undefined. (1)
上面的代码没有错误。但是我认为 v1 不应作为 foo 函数的合法论点。