我试图为Yargs js库编写一个Typescript decleration文件。
如何使用双重行为编写外部模块的环境类型减少...
require('yargs').argv
和......
require('yargs')([ '-x', '1', '-y', '2' ]).argv
答案 0 :(得分:0)
declare module "foo" {
function M(argArray: any[]): typeof M;
module M {
export var argv;
}
export = M;
}
答案 1 :(得分:0)
这个很棘手。需要一些思考。
declare module yargs {
export interface Yargs {
argv: string[];
(input: string[]): Yargs;
count(option: string): Yargs;
alias(shrt: string, lng: string): Yargs;
}
}
declare module "yargs" {
var y: yargs.Yargs;
export = y;
}
答案 2 :(得分:-1)
例如:
// foo.js
function foo(args) {
return {
get: function() { return args; }
size: args.length
};
};
foo.bar = 'bar';
module.exports = foo;
// Example node usage.
require('./foo.js').bar // => 'bar'
f = require('./foo.js')([1,2,3]);
f.get(); // => [1,2,3]
f.size; // => 3