我已经开始在angular.js和jquery中使用typescript,easily声明(d.ts)文件。
你们能帮帮我吗。我可以创建一个extends JQuery的接口,但不知何故它无法工作……
var hub = $.connection.myHub它在抱怨connection的事情...表示“类型为‘JQueryStatic’的值上不存在属性'connection‘”
发布于 2012-11-13 17:44:53
DefinitelyTyped对SignalR有一个完整的TypeScript定义。
刚刚更新了链接,谢谢斯图尔特
发布于 2012-11-10 06:44:02
这就是我能够以一种快速而肮脏的方式准备的东西。请注意,它可能几乎不正确,但现在对我来说已经足够了,而且它似乎可以按预期工作。
这可能是一件很好的事情。让我们称之为"jquery.signalR-0.5.3.d.ts":
/// <reference path="jquery.d.ts" />
interface Hub {
id: string;
state: any;
start(options?: any, callback?: () => any): JQueryPromise;
}
interface SignalR {
log(msg: string, logging: bool): void;
isCrossDomain(url: string): bool;
changeState(connection: any, expectedState: number, newState: number): bool;
isDisconnecting(connection: any): bool;
hub: Hub;
connection: HubConnection;
init(url, qs, logging): void;
ajaxDataType: string;
logging: bool;
reconnectDelay: number;
state: any;
start(options?: any, callback?: () => any): JQueryPromise;
starting(callback?: () => any): SignalR;
send (data): SignalR;
sending (callback?: () => any): SignalR;
received (callback?: (data) => any): SignalR;
stateChanged (callback?: (data) => any): SignalR;
error (callback?: (data) => any): SignalR;
disconnected (callback?: () => any): SignalR;
reconnected (callback?: () => any): SignalR;
stop (async? : bool): SignalR;
}
interface HubConnection extends SignalR {
hub: Hub;
}
// extend JQuery interface
interface JQueryStatic {
signalR: SignalR;
connection: SignalR;
}然后,您可能需要为您的集线器定义约定:
/// <reference path="./jquery.signalR-0.5.3.d.ts" />
interface IMyHub extends HubConnection {
// your methods definition here
}
// extend SignalR interface
interface SignalR {
myHub: IMyHub;
}发布于 2013-11-13 14:12:21
自插头
我已经创建了一个工具来为您的集线器、方法和您在客户端和服务器之间传递的类型生成TypeScript声明文件。它还包括最新的DefinitelyTyped signalr.d.ts文件。我以nuget包的形式发布了一个alpha版本: SignalR.TypeScript。要安装此程序包,请在程序包管理器控制台中运行以下命令:
Install-Package SignalR.TypeScript -Pre 更多信息和方法,请访问我的博客:http://murat.girg.in/2013/11/introducing-signalr-typescript/
/自插
https://stackoverflow.com/questions/13314083
复制相似问题