【问题标题】:Angular2 and TypeScript error "Property METHOD_NAME does not exist on type 'typeof CLASS_NAME'Angular2 和 TypeScript 错误“类型‘typeof CLASS_NAME’上不存在属性 METHOD_NAME
【发布时间】:2017-05-15 12:51:40
【问题描述】:

我需要一些帮助。作为我从 A1 切换到 A2 的一部分,我正在使用 Angular2 和 TypeScript 的基础知识,所以这里的一些东西对你来说可能很明显。

我有这种情况:

  1. Webpack 正在使用中。
  2. AppConfigConst 保存一些静态的、应用范围的配置数据。
  3. AppConfigurationInjectable 采用 AppConfigConst 并公开简单的 API 以访问配置数据。
  4. SelectedLanguageInjectable 想要使用来自 AppConfigConst 的方法,在这里我得到了这个:

[默认] C:_DEV\XXX\src\app\shared\selected-language\selected-language.injectable.ts:9:46 中的错误在类型“typeof AppConfigurationInjectable”上不存在属性“getSupportedUiLanguages”。

【问题讨论】:

  • 首先将代码粘贴到问题中,而不是屏幕截图。问题是private appConfiguration **=** AppConfigurationInjectable。 = 应该是:,因为= 定义了参数的默认值,而不是它的类型。
  • ...而您的selectedLang 设置为字符串...不应该是数组吗?

标签: angular typescript webpack


【解决方案1】:

你的构造函数有错误。应该是:

constructor(private appConfiguration: AppConfigurationInjectable){

将= 更改为:

: 用于在 typescript 中定义类型 = 用于设置你知道的值。

【讨论】:

  • 特别是(在这种情况下)一个默认函数参数。所以appConfiguration 变量最终引用AppConfigurationInjectable 接口/类本身而不是实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2021-01-09
  • 2017-06-28
  • 2020-09-19
  • 1970-01-01
  • 2021-04-09
  • 2017-10-21
相关资源
最近更新 更多