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

标签 javascript typescript aurelia

我正在尝试在 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。

关于javascript - TypeScript:错误 TS2339:类型 'CustomEvent' 上不存在属性 'Window',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120071/

相关文章:

javascript - 如何返回此函数并在其前面添加美元符号。 (Javascript)

javascript - Angular 4 vs React 性能——理论与现实

javascript - aurelia中绑定(bind)点击事件

javascript - 如何刷新绑定(bind)?

javascript - 使用 Expo 和 Typescript 创建StackNavigator,不渲染任何内容

javascript - 在 Aurelia 计算中,设置依赖项时,如何声明对对象属性的依赖项

javascript - 如何从 Vuetify 列表、VueJS 在 Vuex 存储中提交突变

javascript - 实现 react-bootstrap-typeahead 的组合框行为

javascript - Angular 2 : Set change attribute for select in Typescript

angular - ngrx 在服务中订阅还是从组件传递数据?