保存进度!
This commit is contained in:
31
开发日志.md
31
开发日志.md
@@ -129,3 +129,34 @@ const onUploadSuccess: UploadProps["onSuccess"] = ( response: FileUploadResponse
|
||||
};
|
||||
```
|
||||
|
||||
### typescript 的安全链式调用 和 强制链式调用
|
||||
|
||||
在链式调用时,在成员访问操作符前加上?,表示安全链式调用;加上!表示强制链式调用。
|
||||
|
||||
如果?前的属性存在,则正常调用,否则返回null。
|
||||
|
||||
```typescript
|
||||
// 这里 Error对象定义的stack是可选参数,如果这样写的话编译器会提示
|
||||
// 出错 TS2532: Object is possibly 'undefined'.
|
||||
return new Error().stack.split('\n');
|
||||
|
||||
// 我们可以添加?操作符,当stack属性存在时,调用 stack.split。
|
||||
// 若stack不存在,则返回空
|
||||
return new Error().stack?.split('\n');
|
||||
|
||||
// 以上代码等同以下代码, 感谢 @dingyanhe 的监督
|
||||
const err = new Error();
|
||||
return err.stack && err.stack.split('\n');
|
||||
```
|
||||
|
||||
强制链式调用表示!前的属性一定会存在。
|
||||
|
||||
```typescript
|
||||
// 这里 Error对象定义的stack是可选参数,如果这样写的话编译器会提示
|
||||
// 出错 TS2532: Object is possibly 'undefined'.
|
||||
new Error().stack.split('\n');
|
||||
|
||||
// 我们确信这个字段100%出现,那么就可以添加!,强调这个字段一定存在
|
||||
new Error().stack!.split('\n');
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user