有没有办法宣传节点的功能并通过Typescript获得智能感知?

时间:2017-05-06 14:20:21

标签: javascript node.js typescript bluebird

我正在使用@types个定义并添加了@types/bluebird,正如预期的那样,当使用库中的方法时,我会获得自动完成功能。但是,我想宣传节点的功能(fs)。我可以用以下行来做到这一点:

import * as Promise from 'bluebird'
import * as fs from 'fs'

const fsPromisified = Promise.promisifyAll(fs)

问题在于,当我执行fsPromisified时,我会丢失自动完成功能。

有没有办法可以做到这一点,而不必自己用promises包围节点的功能?

1 个答案:

答案 0 :(得分:4)

您可以使用预先授权的mz/fs代替fs,其中包含所有同步所有异步fs函数(使用其原始名称,而不是Async前缀) 。该软件包具有TypeScript类型(@types/mz):

import * as fs from 'mz/fs';

// e.g., read file
fs.readFile('somefile')
  .then((contents) => {
    // ...
  });