【发布时间】:2019-05-03 17:03:27
【问题描述】:
我是 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';。这些都不起作用,或者我做错了。
【问题讨论】:
-
相关但不适用于 args 库:github.com/Microsoft/TypeScript/issues/7148
标签: typescript typescript-declarations