我使用Bluebird.promisifyAll时Typescipt无法推断类型

时间:2018-11-16 02:18:37

标签: typescript bluebird

我想使用Bluebird来保证所有带有fs的nodejs Typescript模块

我的密码

import * as FS from 'fs'

const fs = Bluebird.promisifyAll(FS)

interface fs{
    readFileAsync: Function
}

但是当我使用fs.readFileAsync()

tsc告诉我

[ts] Property 'readFileAsync' does not exist on type 'typeof import("fs")'. Did you mean 'readFileSync'? [2551]

如何告诉tsc“嗨,fs对象中还有一个名为readFileAsync的函数”?

1 个答案:

答案 0 :(得分:0)

创建名为fs的接口不会自动使fs常量实现它。

如果要手动编写该函数,可以按照以下步骤进行操作:

import * as FS from 'fs'

interface fs {
    readFileAsync: Function
}

const fsWithReadFileAsync: fs = {
    ...Bluebird.promisifyAll(FS),
    readFileAsync: () => {
        // Implement your function here
    }
}

fsWithReadFileAsync.readFileAsync()