我正在为jQuery库编写TypeScript定义文件,该文件具有以下语法:
$.library({ /* options object */ }); // Returns an Object
$.library.methodOne(); // Void
$.library.methodTwo(); // Void
所以我尝试编写以下界面:
interface JQueryStatic {
library: StaticLibraryMethods; // Defines the static methods
library(options:LibraryOptions): Object; // Defines the options overflow
}
interface StaticLibraryMethods {
methodOne(): void;
methodTwo(): void;
}
但我在JQueryStatic
中收到错误:
重复的标识符"库"
有没有办法在不修改library
本身的情况下为这种语法编写定义?
答案 0 :(得分:1)
你必须这样定义:
interface JQueryStatic {
(options: LibraryOptions): Object;
library: StaticLibraryMethods; // Defines the static methods
}
interface StaticLibraryMethods {
methodOne(): void;
methodTwo(): void;
}
或者你可以这样做:
interface JQueryStatic {
library: MyLibrary;
}
interface MyLibrary {
(options: LibraryOptions): Object;
methodOne(): void;
methodTwo(): void;
}