Javascript 无效的打字脚本?

Javascript 无效的打字脚本?,javascript,typescript,Javascript,Typescript,我不明白为什么这个函数认为结尾缺少一个)。当我放置)时,它会创建一个自动执行的函数并生成我不想要的javascript 工作 错误 declare var $, Backbone; export class WebControls { _events; Events; constructor (options? ) { this._events = $.extend({}, Backbone.Events); this.Event

我不明白为什么这个函数认为结尾缺少一个
。当我放置
时,它会创建一个自动执行的函数并生成我不想要的javascript

工作

错误

declare var $, Backbone;

export class WebControls {

    _events;
    Events;

    constructor (options? ) {

        this._events = $.extend({}, Backbone.Events);

        this.Events = {};

        this.Events.on = (events: string, cb: (event: any) => any) {
            this._events.on.apply(this._events, arguments);
        };

        this.Events.trigger = (eventName: string, ...args: any[]): any {
            this._events.trigger.apply(this._events, arguments);
        };

        this.Events.off = (events?: string, callback?: any) : any {
            if (typeof events === 'string' && typeof callback === 'function') {
                this._events.off.call(this._events, events, callback);
            } else if (typeof callback === 'function') {
                this._events.off.call(this._events, callback);
            }
        };
    }

}


我是不是盲目地忽略了一些明显的东西?

在屏幕截图代码中,您需要在参数列表后添加一个“函数”关键字或一个粗箭头。

在TypeScript中效果很好。。。之前是什么?(或者那不一定是相同的TypeScript版本或其他什么?)您发布的代码有
回调?:any
。屏幕截图代码有
callback?:(event:any)=>any
虽然在我看来两者都是正确的,但它们是不同的。很难说我们还缺少什么。也许有一个不匹配的
在未发布的代码中?@JanDvorak我已经更新了帖子。你可以在操场上发布,没有扭曲。但是,我在VS2012中使用0.8.0.0创建了一个新的typescript文件,并且出现了错误。那么,你想要什么呢?如果你的代码当前没有这么说,那么我们无法从所说的代码中确定它,就像你的代码一样解释者可以。我们可以用人类的直觉来猜测,但是……你能在不使用function关键字的情况下发布有效的代码片段吗?我最初尝试使用function关键字,但当它这样做时,它会破坏正确的上下文。-注意在其他方法中如何使用此,但当使用function键盘时,它会使用pla在<代码>这个中,请考虑使用GIST或类似的服务来共享人们可以实际使用的文本,而不是截图。@ RyAN如果函数关键字破坏了词法范围(即这个)使用胖箭头语法瑞安C建议:()= {},我似乎无法得到语法正确。<代码> this .EvsOF=(事件?:字符串,回调?:(事件:任意)=>any):任意=>{?
declare var $, Backbone;

export class WebControls {

    _events;
    Events;

    constructor (options? ) {

        this._events = $.extend({}, Backbone.Events);

        this.Events = {};

        this.Events.on = (events: string, cb: (event: any) => any) {
            this._events.on.apply(this._events, arguments);
        };

        this.Events.trigger = (eventName: string, ...args: any[]): any {
            this._events.trigger.apply(this._events, arguments);
        };

        this.Events.off = (events?: string, callback?: any) : any {
            if (typeof events === 'string' && typeof callback === 'function') {
                this._events.off.call(this._events, events, callback);
            } else if (typeof callback === 'function') {
                this._events.off.call(this._events, callback);
            }
        };
    }

}