Есть ли способ обещать функции узла и получить 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) => {
    // ...
  });
Другие вопросы по тегам