TypeScript扩展类的接口可选string字段为何未被识别为含undefined的联合类型
问题原因
该问题由TypeScript编译配置导致,你项目的tsconfig.json中strictNullChecks被显式设置为false:
- 当
strictNullChecks关闭时,TypeScript会自动忽略所有类型中的undefined和null,可选属性?: string会被直接推导为string类型,不会携带undefined - 你配置中虽然启用了
strict: true,但后续单独声明的strictNullChecks: false优先级更高,会覆盖strict规则集合中的空值检查逻辑
修复方法
将tsconfig.json中的strictNullChecks修改为true即可解决问题:
{ "compilerOptions": { // 其余原有配置保持不变 "strictNullChecks": true } }
修改后重新编译,IGenericFilter的value字段会被正确推导为string | undefined类型。
内容的提问来源于stack exchange,提问作者97amarnathk
相关产品推荐
相关产品推荐

