如何处理打字稿中可能未定义的内容?
2018-07-06
1420
我在TS2322错误中遇到问题:
608345524
这是我的代码:
313567751
where键是其类的可选参数(S3.Types.ObjectList用于全面披露)。
我100%确定键中没有未定义的元素,因为我使用过滤器将其删除。
您将如何删除此错误?
问候, 朱利安
1个回答
不幸的是,Typescript 不会以任何方式从
filter
中流出检查信息,因此我们唯一能做的就是使用非空断言:
const keys: string[] = objectList
.map(obj => obj.Key!) // ! means we know this is not null, we won't actually know until the next check
.filter(key => !!key);
或者使用更一致的版本,我们仅在检查后进行断言:
const keys: string[] = objectList
.filter(obj => !!obj.Key)
.map(obj => obj.Key!)
Titian Cernicova-Dragomir
2018-07-06