【问题标题】:Property does not exist on type Angular 5Angular 5 类型上不存在属性
【发布时间】:2018-07-12 11:09:52
【问题描述】:

我尝试创建一个非常基本的类,但由于某种原因,我无法弄清楚为什么这个变量“不存在”

export class AppModule {
  public static currentHost: string = 'http://localhost:8080/';

  constructor() {
    if (window.location.hostname == "localhost") {
      this.currentHost = "http://" + window.location.hostname + "/";
    }
  }

}

ERROR in src/app/app.module.ts(62,12): error TS2339: Property 'currentHost' does not exist on type 'AppModule'.

有人看到我的错误吗?

【问题讨论】:

    标签: angular typescript angular5


    【解决方案1】:

    通常你不会在模块内声明变量,它应该在你想要使用的组件内。

    【讨论】:

      【解决方案2】:

      删除静态关键字。就这样做吧

      public  currentHost = 'http://localhost:8080/';
      

      string 类型隐含在您声明的值中。

      【讨论】:

      • 如果我希望变量是静态的怎么办?它还会像静态变量一样吗?有点像全局变量。
      • 你为什么需要它作为一个静态的?您可能像我一样来自 C#/Java 背景,请查看这个 SO 问题 stackoverflow.com/questions/13212521/typescript-static-classes
      • 如果您希望它是静态的,请将其称为AppModule.currentHost
      • 或者创建一个单独的文件并将你的常量保存在那里类似export const myConfig = { serverUrl : ' http://localhost:8080/ } 你可以在你的组件中使用它像这样this.currentHost = myConfig.serverUrl
      猜你喜欢
      • 2018-09-19
      • 2019-01-30
      • 2018-10-04
      • 2018-05-01
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2022-07-23
      • 2023-03-18
      相关资源
      最近更新 更多