导出未定义标识符时tsc未报语法错误的原因咨询
问题解答
你的猜测不对,tsc并没有忽略这行代码,而是默认配置下的规则没触发报错,具体原因如下:
- 默认的TypeScript配置中,
noImplicitAny是关闭状态。对于未定义的ResponseType,TypeScript会自动将其推断为any类型,不会因为“标识符未定义”抛出错误。 - 同时默认配置里
noUnusedExports也是关闭的,即使这个导出的内容没有被任何其他模块引用,编译器也不会检查这个导出项是否有效或被使用。
如果想要让tsc检测出这个问题,你可以在tsconfig.json里开启以下规则:
{ "compilerOptions": { "noImplicitAny": true, // 强制检查未声明类型的标识符,此时未定义的ResponseType会报错 "noUnusedExports": true // 检查未被使用的导出项,即使ResponseType定义了但没被引用也会报错 } }
内容的提问来源于stack exchange,提问作者gaoyue209918_
相关产品推荐
相关产品推荐

