在使用 Angular 2 AoT 编译时,我可以忽略 TypeScript 错误吗?
我的应用有很多 TypeScript 错误,但运行正常(我把一个 JavaScript 应用迁移到 TypeScript,现在无法修复所有类型问题……)。我已经设置了我的编辑器(WebStorm)忽略这些错误,并且应用可以编译。
运行应用程序(JiT)效果很好,但当我尝试使用 AoT 编译应用程序时(我已经按照这个教程操作),我遇到了所有的 TypeScript 错误,编译失败。我无法粘贴所有错误(错误太多),但这里有一个示例:
Error at C:/app-path/services/app.service.ts:18:23: Property 'saveScroll' does not exist on type 'CanComponentDeactivate'.
Error at C:/app-path/services/app.service.ts:45:20: Parameter 'object' implicitly has an 'any' type.
Error at C:/app-path/services/app.service.ts:48:24: Parameter 'mObject' implicitly has an 'any' type.
Error at C:/app-path/services/app.service.ts:75:30: Property 'value' does not exist on type 'FormBuilder'.
知道我目前无法修复所有错误(但想保留 TypeScript),我应该做些什么才能编译?
答案#1
在你的情况下,最快的解决方案是在 tsconfig.json 中禁用 noImplicitAny 设置。这可以解决第 2 和第 3 个问题。
对于其他类型错误,当编译器抱怨缺少属性时,你可以回退将它们强制转换为 any。
答案#2
你可以通过编辑你的 tsconfig.json 来做到这一点。一些用于抑制类型检查的选项包括 strict, noImplicitOverride, noImplicitReturns 等
更多选项,请参考以下链接并查找您所需的配置
https://www.typescriptlang.org/tsconfig
否则,您可以直接从官方 Angular 网站的 TS 配置页面获取它
https://angular.io/guide/typescript-configuration