编译打字稿时未初始化变量的严格模式较少

问题描述 投票:0回答:1

我使用了一个angular-cli的分支,它编译了多个模块https://www.npmjs.com/package/hydra-ngtools-webpack一切都按照预期的方式工作,但是当我在JIT中编译时,我得到一个错误..

无法读取未定义的推送

我将错误跟踪到@ ngtools / webpack文件夹下的angular_compiler_plugin.js中的这一行。正如您所看到的,lazyRoutes没有给出初始值。

_listLazyRoutesFromProgram() {
    let lazyRoutes;
    if (this._JitMode) {
        if (!this.entryModule) {
            return {};
        }
        const ngProgram = compiler_cli_1.createProgram({
            rootNames: this._rootNames,
            options: Object.assign({}, this._compilerOptions, { genDir: '', collectAllErrors: true }),
            host: this._compilerHost,
        });
        this.entryModule.forEach((entryModule) => {
            ngProgram.listLazyRoutes(entryModule.path + '#' + entryModule.className).forEach((lazyRoute) => {
                lazyRoutes.push(lazyRoute);
            });
        });
    }

如果我像这样初始化它

let lazyRoutes=[];

构建编译没有错误。我已经联系了作者提供了这个包的源代码,因此我可以提出拉取请求并仍在等待他的回复。有没有办法告诉编译器不要抱怨这个未初始化的变量并且是宽容的。否则我将不得不在每个npm安装上编辑这一行,这是不理想的。

angular typescript angular-cli
1个回答
0
投票

您可以为TS Lintt添加一个禁用语句,如下所示:

_listLazyRoutesFromProgram() {
    // tslint:disable-next-line:RULENAME
    let lazyRoutes;
    if (this._JitMode)
    ...

你仍然需要将它添加到代码中,所以可能不会真正为你节省太多。

© www.soinside.com 2019 - 2024. All rights reserved.