我正在尝试在 THIS 之后使用 TypeScript
在 Aurelia
中编写自定义元素指南。
但是,当尝试编译时,我收到以下错误:
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。
关于javascript - TypeScript:错误 TS2339:类型 'CustomEvent' 上不存在属性 'Window',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120071/