"original" 参数必须是函数类型。接收到对象实例

The "original" argument must be of type function. Received an instance of Object

我曾经有过这个:

const util = require('util');
const exec = util.promisify(require('child_process').exec);

然后我重构了这个(或者至少我在这里尝试):

import * as exec from 'child_process';
const execPromise = util.promisify(exec);

现在我在 util.promisify

中的 exec 上收到错误 TypeError: The "original" argument must be of type function. Received an instance of Object

不确定如何让它像以前一样工作,但是使用 Typescript 的这种新导入语法(特别是与 `@typescript-eslint/no-var-requires

您正在寻找

import { exec } from 'child_process';
const execPromise = util.promisify(exec);

* as exec 确实将整个 child_process 模块导入到模块命名空间对象中。

试试这个...

import * as childProcess from 'child_process';
const execPromise = util.promisify(childProcess.exec);