如何在打字稿中制作对象类型

时间:2020-06-04 11:24:54

标签: typescript

我正在使用打字稿。我想在对象中创建键的特定类型。
但这根本不起作用。
它给了我一些错误,如下。

类“ Config”错误地实现了接口“ IConfig”。 属性“ DBConfig”在类型“ Config”中是私有的,而不是在类型“ IConfig”中。

成员'DBConfig'隐式具有'any'类型。

interface IConfig {
  DBConfig: {
    username: string;
    password: string;
    database: string;
    host: string;
    dialect: string;
  };
}

class Config implements IConfig {
  private DBConfig;

  constructor() {}

  public getDBConfig(environment: string): Object {
    switch (environment) {
      case "local":
        this.DBConfig = {
          username: "root",
          password: "1234",
          database: "test",
          host: "127.0.0.1",
          dialect: "mysql",
        };
        break;
    }
    return this.DBConfig;
  }
}

export { Config };

您能为这种情况推荐一些建议吗?非常感谢您阅读它。

1 个答案:

答案 0 :(得分:1)

接口描述类的公共端,而不是公共端和私有端。这会禁止您使用它们来检查类是否具有针对类实例的私有端的特定类型。

来源:https://www.typescriptlang.org/docs/handbook/interfaces.html#interfaces-extending-classes