Метод Promisefy Redis hget с использованием машинописного текста

Я пытаюсь обещать метод hget для redis lib npm. Я завернул redis lib в класс.

Мой код класса:

    // inside constructor
    this.client = redis.createClient({ host: process.env.REDIS_URL });
    this.client.promiseHGet = util.promisify(this.client.hget);
    // the line above shows: Property 'promiseHGet' does not exist on type 'RedisClient'.ts(2339)

Мой метод класса, который использует обещанный hget (тот же класс конструктора, что и выше):

  public getCache(getData: IRedisGetOptions): Promise<any> {
    const { hashKey, key } = getData;
    const cacheValue = await this.client.promiseHGet(hashKey, key);
    return JSON.parse(cacheValue);
  }

Как только RedisClient не имеет свойства обещания HGet, я создал файл объявления (не знаю, правильно ли это):

SRC / Infra / Redis / Redis.d.ts:

interface RedisClient {
  promiseHGet(key: string, field: string): Promise<string>;
}

Интерфейс, который я хочу изменить, находится здесь:index.d.ts

Я попробовал приведенный выше код (redis.d.ts), используя командный интерфейс redis lib, попытался экспортировать интерфейс в файл объявления... и ничего!

Кто-нибудь может показать мне, что я делаю не так, пожалуйста! Спасибо...

0 ответов

Другие вопросы по тегам