为可调用模块编写TypeScript声明文件



cldr-data包的定义类似于:

function cldrData(path) {
// ...
}
cldrData.all = function() {
// ...
}
cldrData.entireMainFor = function(locale/*, ...*/) {
// ...
}
cldrData.entireSupplemental = function() {
// ...
}
module.exports = cldrData;

我应该如何为这样的包编写类型声明文件?

这似乎有效:

declare module 'cldr-data' {
interface CldrData {
(path: any, ...args: any[]): any;
availableLocales: any;
all(): any;
entireMainFor(locale: any, ...args: any[]): any;
entireSupplemental(): any;
}
declare const cldrData: CldrData;
export = cldrData;
};

用法:

import cldrData from 'cldr-data';
cldrData('main/en/numbers');
cldrData.entireSupplemental();
cldrData.entireMainFor('en');
console.log(cldrData.all());

最新更新