Есть ли способ обещать функции узла и получить intellisense с Typescript?
Я использую @types
определения и добавлены @types/bluebird
, как и ожидалось, я получаю автозаполнение при использовании методов из библиотеки. Однако я хотел бы обещать функции узла (фс). Я могу сделать это с помощью следующей строки:
import * as Promise from 'bluebird'
import * as fs from 'fs'
const fsPromisified = Promise.promisifyAll(fs)
Проблема в том, что когда я делаю fsPromisified, я теряю автозаполнение.
Есть ли способ, которым я могу сделать это без необходимости самому обернуть функции узла обещаниями?
1 ответ
Решение
Вы можете использовать предварительно обещанные mz/fs
вместо fs
, который оборачивает все обещает все асинхронное fs
функции (с их оригинальными именами, а не Async
префикс). Этот пакет имеет типизацию TypeScript (@types/mz
):
import * as fs from 'mz/fs';
// e.g., read file
fs.readFile('somefile')
.then((contents) => {
// ...
});