Метод 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, попытался экспортировать интерфейс в файл объявления... и ничего!
Кто-нибудь может показать мне, что я делаю не так, пожалуйста! Спасибо...