У меня есть этот простой модуль, который экспортирует функцию, которая возвращает экземпляр ChildProcess
. Проблема в том, что я не знаю, как добавить информацию о возвращаемом типе, потому что я не знаю, как получить ссылку на класс ChildProcess
.Ссылка на класс ChildProcess для типов TypeScript
//core
import * as cp from 'child_process';
import * as path from 'path';
//project
const run = path.resolve(__dirname +'/lib/run.sh');
export = function($commands: Array<string>, args?: Array<string>) {
const commands = $commands.map(function(c){
return String(c).trim();
});
return cp.spawn(run, (args || []), {
env: Object.assign({}, process.env, {
GENERIC_SUBSHELL_COMMANDS: commands.join('\n')
})
});
};
, если вы посмотрите на документы Node.js, он говорит cp.spawn() возвращает экземпляр класса ChildProcess.
Если вы посмотрите здесь: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/node/index.d.ts
мы видим, определение типа для класса ChildProcess: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/node/index.d.ts#L1599
Однако, я запутался, как ссылаться на это в моей машинописи коде.
Я не думаю, что я должен импортировать @types/node
, поскольку это должно быть devDependency.
Что я должен делать?
мне нужно сделать что-то вроде:
export = function($commands: Array<string>, args?: Array<string>): ChildProcess {
}
получил его, все еще не совсем уверен, как это работает, но это должно сделать это, позвольте мне проверить –