意外的打字稿这是未定义的类型

unexpected typescript this is undefined type

    /// <reference path="../typings/signalr/signalr.d.ts" />
/// <reference path="../typings/jquery/jquery.d.ts" />

interface IMyBlackjack {

}

module My {
    export class MyBlackjack implements IMyBlackjack {

        private hub: HubProxy;
        private cnn: HubConnection;

        constructor() {
            $("#formBlackJack").hide();

            this.cnn = $.hubConnection();
            this.hub = this.cnn.createHubProxy("blackjackHub");
            this.cnn.start(() => this.onConnStart);
        }

        private onConnStart(): void {
            $("#formBlackJack").show();
            this.hub.invoke('hello');
        }
    }
}

var myBlackjack: IMyBlackjack = new My.MyBlackjack();

代码有问题:

this.hub.invoke('hello');

this.hub 出人意料地未定义。

而且我希望它应该是一个对象。 有什么想法吗?

this 未指向实例。修复使用 lambda:

    private onConnStart = () => {
        $("#formBlackJack").show();
        this.hub.invoke('hello');
    }

更多:https://www.youtube.com/watch?v=tvocUcbCupA

还有

this.cnn.start(() => this.onConnStart);

也许你的意思是 call() => this.onConnStart()