TypeScript-为什么可以分配给其他数据类型?

时间:2020-09-23 11:17:45

标签: typescript

我们知道,任何数据类型是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 函数的合法论点。

0 个答案:

没有答案