New Angular项目不会使用严格模式进行编译

时间:2018-03-30 15:15:55

标签: angular typescript

使用CLI生成Angular项目 修改了tsconfig,添加了严格的选项

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "strict": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2017", "dom"]
  }
}

运行ng serve时出现以下错误:

  

src / app / app.component.ts(2,29)中的错误:错误TS7016:找不到   模块' util'的声明文件。   ' d:/proj/node_modules/util/util.js'   隐含地有一个“任何”的类型。如果有,请尝试npm install @types/util   存在或添加包含declare module 'util';

的新声明(.d.ts)文件

我尝试了npm install建议 - 此模块不存在。 我还试图删除node_modules并执行npm install。一样。有什么指针吗?

修改

app.component.ts

import { Component, OnInit } from "@angular/core";
import { isUndefined } from "util";

@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.scss"]
})
export class AppComponent {
  title = "Portal";
}

3 个答案:

答案 0 :(得分:0)

尝试一下:

1:删除node_modules

2:运行 npm install

3:运行 ng serve --aot = false

希望它会对您有所帮助。

答案 1 :(得分:0)

只需注释掉main.ts中的以下行或将其删除(由升级过程添加):

export { renderModule, renderModuleFactory } from '@angular/platform-server';

可以解决您的问题

答案 2 :(得分:-3)

在严格模式下分配任何值之前声明变量:

var title = "portal"; 

let title = "portal"