TypeScript:错误 TS2339:属性 'CustomEvent' 在类型 'Window' 上不存在

TypeScript: error TS2339: Property 'CustomEvent' does not exist on type 'Window'

我正在尝试按照 THIS 指南使用 TypeScriptAurelia 中编写自定义元素。

但是在尝试编译时出现以下错误:

error TS2339: Property 'CustomEvent' does not exist on type 'Window'.

error TS2339: Property 'val' does not exist on type 'Event'.

我的class是:

import {bindable, autoinject, customElement} from 'aurelia-framework';

import * as $ from 'jquery';
import 'select2';
import 'select2/css/select2.css!';

@customElement('select2')
@autoinject
export class CustomSelect{
    @bindable name:string;
    @bindable selected: boolean = false;
    @bindable options: any;
    element: Element;
    
    constructor(element: Element){
        this.element = element;
    }
    
    attached() :void {
        $(this.element)
            .find('select')
            .select2()
            .on('change', ev => {
                let changeEvent;
                if(window.CustomEvent){
                    changeEvent = new CustomEvent('change', {
                        detail: {
                            value: ev.val
                        },
                        bubbles: true
                    });
                } else {
                    changeEvent = document.createEvent('CustomEvent');
                    changeEvent.initCustomEvent('change', true, true, {value: event.val});
                }
                this.element.dispatchEvent(changeEvent);
            }); 
    }
}

CustomEvent 定义在 lib.es6.d.ts

将 typescript 编译配置为目标 ES6 将解决此问题。进行此更改后,您可能需要关闭并重新打开 IDE。