我在 TypeScript 中有以下类。

class DBService {
  constructor(path: string) {
    this.initDatabase(path);
  }

  public db: lowDb.LowdbAsync<DatabaseSchema>;

  private async initDatabase(path: string) {
    const adapter = new FileAsync(path);
    this.db = await lowDb(adapter);

    await this.db
      .defaults({
        sites: [],
        events: [],
      })
      .write();
  }
}

export default DBService;

现在,当我想使用它时,我会像这样创建一个新的类实例。

const dbservice = new DBService(join(DB_DIR, 'db.json'));

但我想直接访问类中的公共db属性。

我已经尝试过像这样的对象解构。 但是这样做时 db 总是未定义的。

const { db } = new DBService(join(DB_DIR, 'db.json'));
console.log(db) // undefined 

我必须始终使用指定的类访问该属性。

const dbservice = new DBService(join(DB_DIR, 'db.json'));
console.log(dbservice.db) // works

在 JS/TS 中不能解构类的公共属性吗?

  ask by Alexander Hoerl translate from so

本文未有回复,本站智能推荐:

1回复

JS/TS:对象解构

我有一个名为props的变量。 类型从延伸VariantTheme , VariantSize , VariantGradient ,& React.DOMAttributes<HTMLOrSVGElement> 然后我想再创建一个变量,比如说htmlProps 。 我想从props填充
1回复

是否可以从对象中解构属性并将其分配给构造函数上的属性?

我正在使用打字稿,想从一个对象中解构属性。 问题是我需要将其分配给该类的构造函数上的一个属性: 我想要更多类似的东西: 这可能是任何形状或形式吗?
1回复

有没有办法在react-js中扩展另一个类而不是组件类

我正在使用 react-js 开发一个网站。 我正在通过扩展到另一个类来实现中间件功能。 我有多个组件,例如 如果我创建两个类,一个class Private和另一个class public将扩展到我的私有和公共组组件,这些组件调用一个函数来检查身份验证令牌是否仍然有效,我不必调用相同的在我尝试过的
1回复

打字稿-在解构构造函数中将属性设为公共

有没有办法在构造函数的解构中将属性设为公共? 假设在Person Class中有许多属性。 代替 我想使用destructuring将对象作为构造函数参数传递并将属性设置为public。 这里有解决方法吗?
3回复

为什么在TypeScript中公共成员可以覆盖受保护的成员?

我是Typescript的新手,所以我尝试在这个操场上玩TypeScript。 我注意到在TypeScript中,公共成员可以覆盖基类中的受保护成员: 一方面,这对我来说很有意义,因为《里斯科夫替代原则》仍然成立:基类比派生类有更严格的要求。 但是另一方面,我注意到私有成员不能被受保护的
2回复

我想从一个类扩展但删除一些属性

我有一些用于 crud API 服务类的类我想扩展它但是为考试提供了一些属性这是我的类 这是儿童班 我不想看到和访问的另一个文件
1回复

如何从Angular2应用程序中的TypeScript/JavaScript中的字符串中获取类?

在我的应用程序中,我有这样的事情: user.ts 而现在,我这样做: app.component.ts 如果我将类名作为字符串,即"User" ,我该怎么做? 如果可能的话,我如何检查变量是否真的是可用的类? 例如: 我不确定这是否可能,但感谢你的意见。 到目前为
3回复

哪个文件称为类

我想知道哪个文件称为类: database.tsclass Database { constructor() { console.log(`This class was called by ${super()}`); }} server.tsimport Database