我刚刚开始学习Angular的基础教程,但我面临一个小的编译问题.

我正在Angular网站上关注教程.我一直使用依赖注入部分,因为它不想编译.

在本教程中,他们要求使用以下内容创建服务:

ng generate service hero

在这个生成的服务中,您有这样一个decorator :

@Injectable()

然后他们要求向decorator 添加一个参数,如下所示:

@Injectable({
  providedIn: 'root'
})

当我try 这样做时,我有一个打字错误告诉我:

错误TS2554:应为0个参数,但得到1个.

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'
})

你有两个 Select :

  1. 请参阅Angular 5文档.(正如@r-richards所指出的,在左导航底部的下拉列表中将文档的版本更改为v5.)

  2. 将项目升级到Angular 6以解决此问题

Follow the official Angular upgrade guide.

您将填写一份简短的表格, Select 您使用的Angular的哪个版本以及要升级到哪个版本.然后,它会向您显示执行升级所需的步骤列表.所有升级都应遵循本指南.

https://update.angular.io/

enter image description here

Here are some notes I took while upgrading from Angular 5 to Angular 6.

根据您的配置,您的里程可能会有所不同.我在下面链接了几篇帮助我的文章.

更新npm( node 包管理器)

npm install npm@latest -g 

上移节

对于Windows和mac用户,最简单的方法是使用官方节pip安装程序.或者参阅下面关于linux/unix的文章.

https://nodejs.org/en/download/

在全球和本地进行升级

npm install -g @angular/cli
npm install @angular/cli

更新包.json

ng update @angular/cli

更新@Angular/Core

ng update @angular/core

如果正在使用角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,甚至可能重启你的整个电脑都不会有什么坏处.

参考资料:

升级 node

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

Typescript相关问答推荐

无法从应用程序内的库导入组件NX Expo React Native

替代语法/逻辑以避免TS变量被分配之前使用." "

rxjs forkJoin在错误后不会停止后续请求

如何通过TypeScript中的工厂函数将区分的联合映射到具体的类型(如类)?

如何使用一个字段输入对象,其中每个键只能是数组中对象的id属性,而数组是另一个字段?

如何编写一个类型脚本函数,将一个对象映射(转换)为另一个对象并推断返回类型?

向NextAuth会话添加除名称、图像和ID之外的更多详细信息

在数据加载后,如何使用NgFor在使用异步管道的可观测对象上生成子组件?

布局组件中的Angular 17命名路由出口

不带其他属性的精确函数返回类型

创建Angular 为17的动态形状时出错

TaskListProps[]类型不可分配给TaskListProps类型

在类型脚本中创建显式不安全的私有类成员访问函数

为什么类型脚本使用接口来声明函数?他的目的是什么.

我可以使用JsDocs来澄清Typescript实用程序类型吗?

React中的效果挂钩在依赖项更新后不会重新执行

断言同级为true或抛出错误的Typescript函数

如何按成员资格排除或 Select 元组?

如何让 Promise 将它调用的重载函数的类型转发给它自己的调用者?

基于泛型的柯里化函数的条件参数