我刚开始使用Angular的基础教程,但遇到一个小的编译问题。

我正在关注Angular网站上的教程。我坚持依赖注入(inject)部分,因为它不想编译。

在教程中,他们要求使用以下命令创建服务:

ng generate service hero

在此生成的服务中,您有一个这样的装饰器:
@Injectable()

然后他们要求像这样向装饰器添加参数:
@Injectable({
  providedIn: 'root'
})

当我尝试这样做时,我遇到TypeScript错误:


Angular CLI: 1.7.4
Node: 9.5.0
OS: win32 x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.5.3
webpack: 3.11.0

知道为什么它不接受参数吗?

提前致谢 !

最佳答案

这是Angular 6的新功能。

@Injectable({
  providedIn: 'root'
})
您有两种选择:
  • 请参阅Angular 5文档。 (如@ r-richards所述-在左侧导航栏底部的下拉菜单中将文档版本更改为v5。)
  • 将您的项目升级到Angular 6以解决该问题

  • 请遵循Angular官方升级指南。
    您将填写一份简短的表格,选择要使用的Angular版本以及要升级到的版本。然后,它将显示执行升级所需采取的步骤的列表。您应该按照本指南进行所有升级。
    https://update.angular.io/
    angular - Angular Injectable装饰器-预期0个参数但得到1个-LMLPHP
    这是我从Angular 5升级到Angular 6时要注意的一些事项。
    您的里程可能会因您的配置而异。我链接到下面对我有帮助的几篇文章。
    更新npm(节点程序包管理器)
    npm install npm@latest -g
    
    Upgarde节点
    对于Windows和Mac用户,最简单的方法是使用官方的Node安装程序。或参见下面有关linux / unix的文章。
    https://nodejs.org/en/download/
    
    全局和本地Upgarde Angular CLI
    npm install -g @angular/cli
    npm install @angular/cli
    
    更新package.json
    ng update @angular/cli
    
    更新@ Angular / Core
    ng update @angular/core
    
    使用时更新Angular Material
    ng update @angular/material
    
    检查其他可能需要升级的软件包
    npm outdated
    
    更新所有过时的软件包
    npm update
    
    或升级特定套件
    npm update <package name>
    
    您可能需要将angular-cli.json文件转换为angular.json
    ng update @angular/cli --migrate-only --from=1.7.4
    
    正如@Sharondio所指出的,如果您看到怪异的东西,那么重新启动IDE以及重新启动整个计算机都不会受到任何伤害。
    引用文献:
    升级节点
    http://www.hostingadvice.com/how-to/update-node-js-latest-version/
    升级Angular
    https://vitalflux.com/upgrade-angular-5-app-angular-6/
    其他故障排除步骤
    https://stackoverflow.com/a/49811824/151325

    10-05 20:51
    查看更多