我正在使用typescript,我想使用jquery.steps库从typescript创建一个向导。 目前,没有可用于jquery.steps的类型化定义文件。 试图找出如何写一个打字文件。
答案 0 :(得分:14)
您始终可以将任何对象定义为any
类型,然后调用您希望的任何方法。当然你会丢失类型检查,因此创建d.ts
可能更好但很耗时。
无论如何,您应该在与jquery.steps.d.ts
相同的文件夹中创建文件jquery.steps.js
。然后你必须参考jquery.d.ts
。
///<reference path="../jquery/jquery.d.ts" />
现在您已准备好开始输入...
首先,您将创建接口JQuery并添加扩展标准jQuery($)对象的任何方法。这将与jquery.d.ts
中定义的接口JQuery合并,您将能够从TypeScript调用这些方法。
方法名称必须与JavaScript中的名称相匹配。参数名称可以更改。返回值必须与JavaScript中的相同。
1)定义
interface JQuery {
testMethod(parameter: string): JQuery;
}
2)用法
var $: JQuery;
$.testMethod("test");
如果使用任何特殊对象,通常是插件等的设置,则必须将其定义为单独的界面。 interace的名称无关紧要,但属性名称必须与JavaScript中的名称相匹配。
1)定义
interface IJQueryPluginSettings {
test: string;
}
interface JQuery {
initPlugin(settings: IJQueryPluginSettings): JQuery;
}
2)用法
var $: JQuery;
var settings: IJQueryPluginSettings = <IJQueryPluginSettings> {
test: "test"
};
$.initPlugin(settings);
使用这种方法,您可以涵盖大部分代码。关键是命名必须匹配的方法/属性。
查看已创建的d.ts
也会对您有所帮助。查看类似https://github.com/borisyankov/DefinitelyTyped/blob/master/jquery.joyride/jquery.joyride.d.ts或更复杂https://github.com/borisyankov/DefinitelyTyped/blob/master/jqueryui/jqueryui.d.ts
您不必涵盖使用它的所有方法/属性。您只能覆盖要从TypeScript调用的代码。如果您涵盖了所有或大部分jQuery插件,请将其上传到https://github.com/borisyankov/DefinitelyTyped