如何解决TypeScript:实际上可能未定义Array.find,但它以固定类型返回
我被一个小问题所困扰:
const foo = ["foo","bar"]; // type "string[]"
const foundFoo = foo.find(fooEl => fooEl === "notFooBar"); // type "string" -> why not "string | undefined"
我检查了array.find
的类型定义,它确实说可能返回未定义的类型。为什么我的环境说foundFoo
是string
类型而不是string | undefined
类型?
我在StackOverflow上发现的与此有关的唯一其他问题几乎完全相反,为什么它“可能”未定义,所以我不确定为什么我的环境会说相反的话。
解决方法
确保[sum(i[1:]) for i in data]
文件中有strictNullChecks
options enabled。如果未启用该选项,则所有类型(tsconfig.json
除外)基本上都将解析为any
:
在严格的null检查模式下,
T | undefined
和null
值不在每种类型的域中,只能分配给它们自己和undefined
(一个例外是未定义是也可以分配给any
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。