首页 > 解决方案 > 访问声明的类中的静态方法

问题描述

我将 TypeORM 与 MongoDB 一起使用。TypeORMObjectID为 id 字段提供了一个类。该类还提供了一个静态isValid方法。该类的当前实现(来自 node_modules)是

在此处输入图像描述

在运行时我想使用静态方法。所以基本上我在做

import { ObjectID } from 'typeorm';

export class MyClass {
  public doSomething(value: any): void {
    const validObjectId: boolean = ObjectID.isValid(value);

    // ...
  }
}

但我得到了ObjectID未定义的错误。当然我不能从中创建一个新实例,因为那样我就不能再使用静态方法了。

我试图重现这个问题,我的自定义类代表 MongoDB 的ObjectID

export declare class MyCustomObjectId {
  static isValid(): boolean;
}

接下来我想在启动时使用它

import { MyCustomObjectId } from './myCustomObjectId';

MyCustomObjectId.isValid();

应用程序崩溃,因为MyCustomObjectId再次未定义。我怎样才能使用那个类?我需要访问 TypeORM 的静态验证方法。

标签: mongodbtypescripttypeorm

解决方案


看来我必须使用

import { ObjectID } from 'mongodb';

代替

import { ObjectID } from 'typeorm';

然后我可以访问静态方法。


推荐阅读