Si consideri il seguente codice:Come trattare correttamente con promisifyAll in dattiloscritto?
import redis = require('redis'); //Has ambient declaration from DT
import bluebird = require('bluebird'); //Has ambient declaration from DT
bluebird.promisifyAll((<any>redis).RedisClient.prototype);
bluebird.promisifyAll((<any>redis).Multi.prototype);
const client = redis.createClient();
client.getAsync('foo').then(function(res) {
console.log(res);
});
getAsync
sarà errore fuori perché è creato al volo e non definito in qualsiasi file .d.ts
. Allora, qual è il modo corretto per gestire questo?
Inoltre, anche se ho i file caricati per .d.ts
Redis, ho ancora bisogno di lanciare redis
-any
da utilizzare per promisifyAll
. In caso contrario, sarà fuoriuscire errore:
Property 'RedisClient' does not exist on type 'typeof "redis"'
sta scrivendo al any
l'unico modo facile andare?
Avete mai trovato un modo per risolvere questo? Ho riscontrato lo stesso problema ... – zam6ak
@ zam6ak Sì utilizzando la fusione delle dichiarazioni. Vedi la mia risposta qui sotto. – Dave