代码之家  ›  专栏  ›  技术社区  ›  user1585001

Visual Studio中的角6组件声明编译器错误

  •  1
  • user1585001  · 技术社区  · 6 年前

    我刚把一个项目从Angular4升级到Angular6。但我现在在Visual Studio中的组件声明中遇到编译器错误。所以下面的基本声明用红色下划线:

    @Component({ 
        template: ''
    }) 
    

    滚动显示错误:

    “{template:string}”类型的参数不能分配给参数 类型{template: 字符串}'

    不管这个声明有多复杂,不管is是否有选择器、模板url或样式,或者其他什么,都无关紧要,错误仍然存在,只是时间更长。

    现在这对应用程序的编译和运行没有影响,它只是在编辑器中显示为一个错误。所以当从角度4移动到角度6时,一定是typescript配置问题。在Visual Studio中加载Angular 4项目时,不会出现错误。

    我使用的是Visual Studio 2015,最新版本的Angular CLI(6.2.3),Typescript 2.8.3和TsLint 5.11.0。

    我对该项目的配置如下:

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

    任何帮助都将不胜感激。

    干杯 约翰

    1 回复  |  直到 6 年前
        1
  •  0
  •   danday74    6 年前

    Angular 6在package.json中配置了@Angular/language服务

    这会检查你的IDE,而不是在Angular4中。

    因为它很新,我想它有时会出错,所以这可能是你的问题。

    文件在这里:

    https://angular.io/guide/language-service

    我不使用Visual Studio,所以从未见过这个,但在webtorm中也有类似的问题。

    不过,一般来说,语言服务擅长发现问题,因此最好保持启用状态。也许你可以试着去修正或者忽略你现在的错误。