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的原创文章,尽在:“汪子熙”: