我想说我想写一个模块的TypeScript定义,它的JavaScript等价如下:
var service = {};
service.new = function (name, options) {
console.log('Ive been called!');
};
module.exports = service;
我该如何申报?我找不到在服务上声明这个名为new的属性的方法,因为new是一个保留关键字,但这个JavaScript代码仍然有用,应该可以在.d.ts文件中定义。
我上次失败的尝试是
export = ModuleName;
export as namespace ModuleName;
declare var instance: ModuleName.StaticInstance;
declare namespace ModuleName {
interface StaticInstance {
new(name: string, options: ModuleName.Options): NewService;
}
interface NewService {
someMethod()...
}
interface Options {
option1: number;
...
}
}
任何提示?
答案 0 :(得分:1)
在某些情况下,您可以引用标识符名称:
interface MyModule {
"new"(name: string, options: Options): NewService;
}
declare const m: MyModule;
export = m;