TypeScript的非空断言操作符(感叹号)

964 阅读1分钟

x! 将从 x 值域中排除 null 和 undefined.

看个例子:

myFunc = (maybeString: string | undefined | null) => {
  const onlyString: string = maybeString; // Error
  const ignoreUndefinedAndNull: string = maybeString!; // Ok
  }

  myFunc2 = (onlyString: string) => {
    const a: string = onlyString;
  }
  constructor() {
     this.myFunc('jerry');
     this.myFunc(undefined);

     this.myFunc2(undefined);
     this.myFunc2(null);
  }

没有编译错误,也能正常运行:

我的Angular版本:

测试出的结果和这篇文章细数 TS 中那些奇怪的符号里提到的不一致:

更多Jerry的原创文章,尽在:“汪子熙”: