有什么方法可以承诺节点的功能并使用 Typescript 获得智能感知吗?
Is there any way to promisify node's functions and get intellisense with Typescript?
我正在使用 @types
定义并添加了 @types/bluebird
,正如预期的那样,我在使用库中的方法时获得了自动完成功能。但是我想承诺节点的功能(fs)。我可以使用以下行来做到这一点:
import * as Promise from 'bluebird'
import * as fs from 'fs'
const fsPromisified = Promise.promisifyAll(fs)
问题是当我执行 fsPromisified 时,我失去了自动完成功能。
有什么方法可以做到这一点,而不必自己用 promises 来包装节点的功能?
您可以使用预先承诺的 <a href="https://www.npmjs.com/package/mz" rel="nofollow noreferrer">mz</a>/fs
instead of fs
, which wraps all promisifies all async fs
functions (with their original names, not the Async
prefix). That package has TypeScript typings (@types/mz
):
import * as fs from 'mz/fs';
// e.g., read file
fs.readFile('somefile')
.then((contents) => {
// ...
});
我正在使用 @types
定义并添加了 @types/bluebird
,正如预期的那样,我在使用库中的方法时获得了自动完成功能。但是我想承诺节点的功能(fs)。我可以使用以下行来做到这一点:
import * as Promise from 'bluebird'
import * as fs from 'fs'
const fsPromisified = Promise.promisifyAll(fs)
问题是当我执行 fsPromisified 时,我失去了自动完成功能。
有什么方法可以做到这一点,而不必自己用 promises 来包装节点的功能?
您可以使用预先承诺的 <a href="https://www.npmjs.com/package/mz" rel="nofollow noreferrer">mz</a>/fs
instead of fs
, which wraps all promisifies all async fs
functions (with their original names, not the Async
prefix). That package has TypeScript typings (@types/mz
):
import * as fs from 'mz/fs';
// e.g., read file
fs.readFile('somefile')
.then((contents) => {
// ...
});