Consider the following code:
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
will error out because it's created on the fly and not defined in any .d.ts
file. So what is the proper way to handle this?
Also, even though I have the .d.ts
files loaded for redis, I still need to cast redis
to any
to be used for promisifyAll
. Otherwise, it will spill out error:
Property 'RedisClient' does not exist on type 'typeof "redis"'
Is typing it to any
the only easy way to go?