Я довольно новичок в TypeScript, и особенно новичок в написании / расширении файлов объявлений для внешних пакетов.
Я использую пакет args
npm.Он написан на JavaScript, поэтому его тип объявлен в @types/args
.
/**
* args/lib/index.js
*/
const publicMethods = {
option: require('./option'),
options: require('./options'),
command: require('./command'),
parse: require('./parse'),
example: require('./example'),
examples: require('./examples'),
showHelp: require('./help'),
showVersion: require('./version')
}
function Args() {
this.details = {
options: [],
commands: [],
examples: []
}
/* ... */
}
/* ...assign `publicMethods` to `Args` class... */
module.exports = new Args()
/**
* @types/args/index.d.ts
*/
declare const c: args;
export = c;
interface args {
/* ... */
}
/* ... */
Класс args
имеет частное свойство с именем details
(хотя я и нене знаю, почему это личное), которое не выставляется @types/args
.Я хотел бы расширить интерфейс args, чтобы выставить свойство, чтобы я мог перебирать опции, но поскольку экспорт - это переменная, а не модуль, я не понял, как это сделать.
пробовал использовать declare module
, namespace
, declare namespace
, declare const
и declare var
, с import c from 'args';
и без него.Никто из них не работал, или я сделал их неправильно.