我一起使用 TypeScript 和 SignalR,并尝试为生成的 SignalR 类定义静态类型。如果我做这样的事情,它会起作用:
///<reference path="../Scripts/jquery-1.8.d.ts" />
///<reference path="../Scripts/signalr-1.0.d.ts" />
interface SignalR {
roomHub: Service.RoomHub;
}
module Service {
export var roomHub = $.connection.roomHub;
export interface RoomHub { }
}
当然$.connection
是类型SignalR
,它在文件“signalr-1.0.d.ts”中定义,并在上面的文件中扩展。
但是,我需要能够Service
从其他文件中引用模块,所以我需要在模块和接口中添加“export”关键字,即:
///<reference path="../Scripts/jquery-1.8.d.ts" />
///<reference path="../Scripts/signalr-1.0.d.ts" />
export interface SignalR {
roomHub: Service.RoomHub;
}
export module Service {
// Error here: "The property 'roomHub' does not exist on type SignalR."
export var roomHub = $.connection.roomHub;
export interface RoomHub { }
}
但是,当我这样做时,我在 下得到一条红色的波浪线$.connection.roomHub
,编译器返回错误“SignalR 类型上不存在属性 'roomHub'。”
我当然不了解有关 TypeScript 的所有内容,但这对我来说似乎不正确。我遇到了编译器错误吗?还是有其他方法可以做到这一点?