比如下面的函数
export function showInputBox(options?: InputBoxOptions, token?: CancellationToken): Thenable<string | undefined>;
使用下面的代码检查值是否为空
const pat = await window.showInputBox(opt)
if (!pat) throw new Error('个人访问令牌(PAT)不能为空')
eslint 提示
Unexpected nullable string value in conditional. Please handle the nullish/empty cases explicitly.eslint@typescript-eslint/strict-boolean-expressions
请问如何解决?
我没用过这个编程语言,搜了搜(虽然不太一样,但我觉得应该这个解决方案应该是正确的):
根据我的推断,应该是对 pat 变量检查不严格导致的警告,请修改对空检查的方式。
You could try using the nullish coalescing operator (??) like this:
if (!(text ?? '')) {}
text ?? '' evaluates to '' if it is undefined and text otherwise.
This is equivalent to the following:
if (!(text !== null && text !== undefined ? text : '')) {}
if (!(pat ?? ''))
也无法通过 eslint 的检查
Unexpected string value in conditional. An explicit empty string check is required
但这样写之后,quick fix 生成了下面的修复代码
if ((pat ?? '').length === 0) { }
@dudu: 如果给出修复代码,过了检测就好,这检测主要是防止不规范的写法。因为我没用过 ts ,所以具体细节其实我也不清楚。不过最后再给你一个参考,dudu 您应该比我更懂一些,里面写了一些详细说明,希望对您有帮助:https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/strict-boolean-expressions.md