代码之家  ›  专栏  ›  技术社区  ›  blub

为什么数字/字符串/。。。可赋值为空?

  •  2
  • blub  · 技术社区  · 6 年前

    为什么TypeScript只在将字符串赋给数字时显示错误,而在将null赋给数字时不显示错误?

    export type ArrayWithNumberOrString = Array<number | string>;
    export type ArrayWithNumberOrNull = Array<number | null>;
    
    
    function doSomethingWithNumbersOnly(array: number[]): number[] {
      return array;
    };
    
    const numbersAndString: ArrayWithNumberOrString = [1, 2, 3, 'string'];
    const numbersAndNull: ArrayWithNumberOrNull = [1, 2, 3, null];
    
    doSomethingWithNumbersOnly(numbersAndString);
    doSomethingWithNumbersOnly(numbersAndNull);

    Typescript sandbox

    1 回复  |  直到 6 年前
        1
  •  3
  •   blub    6 年前

    并立即找到了答案:

    默认情况下,该选项 strictNullChecks 在tsconfig中禁用。json。