Typescript не может определить тип, когда я использую Bluebird.promisifyAll - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу использовать Bluebird для обещания всех узлов nodejs fs с 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 голосов
/ 16 июня 2019

Создание интерфейса с именем fs не заставляет константу fs автоматически его реализовывать.

Если вы хотите написать эту функцию вручную, вы можете сделать что-то вроде этого:

import * as FS from 'fs'

interface fs {
    readFileAsync: Function
}

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

fsWithReadFileAsync.readFileAsync()

...