意外的打字稿这是未定义的类型
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()
/// <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()