typescript 为什么VS Code的intellisense对于这个返回字符串的函数似乎不准确|null?

tuwxkamq  于 2023-05-19  发布在  TypeScript
关注(0)|答案(1)|浏览(221)

我有一些简单的代码,有时返回string,有时返回null,例如:

const getNameOrMaybeNull = () => {
  // Should have a 50% change of returning false / true
  const isFeelingLikeIt = Boolean(Date.now() % 2);
  if (isFeelingLikeIt) {
    return null;
  }
  return "steve";
};

函数应该返回string | null。但是,VS Code的悬停工具提示显示以下推断类型:

在真实的生活中,我应该在函数上有正确的返回类型,但为什么VS Code说它只返回字符串?
tsconfig.json为空,即:

{}

我还重新启动了VS Code。

jdzmm42g

jdzmm42g1#

首先检查VS Code自身设置是否开启严格空值检查

正如VS Code提到的,这可能会被tsconfig覆盖,所以检查compilerOptions.strictNullCheckstruetsconfig.json

{
  ...
  "compilerOptions": {
    ...
    // Enable otherwise intellisense will give odd results for functions that return null | somethingElse
    "strictNullChecks": true
  },
  ...
}

jcalz

相关问题