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
に小さな赤い波線が表示され、コンパイラは「プロパティ'roomHub'はSignalR型に存在しません」というエラーを返します。
私は確かにTypeScriptについてすべてを理解しているわけではありませんが、それは私には正しくないようです。コンパイラのバグに遭遇しましたか?または、これを行う別の方法はありますか?