fooEl -6ren">
gpt4 book ai didi

TypeScript:Array.find 实际上可能未定义,但它作为固定类型返回

转载 作者:行者123 更新时间:2023-12-05 01:10:57 25 4
gpt4 key购买 nike

我被一个小问题挡住了:

const foo = ["foo", "bar"]; // type "string[]"
const foundFoo = foo.find(fooEl => fooEl === "notFooBar"); // type "string" -> why not "string | undefined"

我检查了 array.find 的类型定义,它确实说它可能返回 undefined。为什么我的环境说 foundFoostring 而不是 string |未定义?

我在 StackOverflow 上发现的关于此的唯一其他问题几乎完全相反,为什么它“可能”是未定义的,所以我不确定为什么我的环境说的是相反的。

最佳答案

确保您拥有 strictNullChecks options enabled在您的 tsconfig.json 文件中。如果未启用该选项,则所有类型(any 除外)基本上都将解析为 T |未定义:

In strict null checking mode, the null and undefined values are not in the domain of every type and are only assignable to themselves and any (the one exception being that undefined is also assignable to void)

关于TypeScript:Array.find 实际上可能未定义,但它作为固定类型返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63574412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com