TypeScript:错误 TS2339:属性 'CustomEvent' 在类型 'Window' 上不存在
TypeScript: error TS2339: Property 'CustomEvent' does not exist on type 'Window'
我正在尝试按照 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。
我正在尝试按照 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。