Typescript 如何解决类型脚本表示法中addEventListener的错误 类脚本加载器{ private-loadedScripts:Array=new-Array(); 构造函数(private head=document.getElementsByTagName('head')[0],){ if(类型(头部)=“未定义”) 警惕(“página não contém o elemento head.”); } 加载(脚本:数组){ scripts.forEach(元素=>{ 让node=document.createElement('script')作为HTMLScriptElement; node.type='text/javascript'; node.charset='utf-8'; node.async=true; node.addEventListener('load',(el:HTMLScriptElement,ev:Event)=>this.onLoad(el,ev),false); node.src=元素; this.head.appendChild(节点); }); } onLoad(el:HTMLScriptElement,ev:Event):任意{ this.loadedScripts.push(el.src) } }

Typescript 如何解决类型脚本表示法中addEventListener的错误 类脚本加载器{ private-loadedScripts:Array=new-Array(); 构造函数(private head=document.getElementsByTagName('head')[0],){ if(类型(头部)=“未定义”) 警惕(“página não contém o elemento head.”); } 加载(脚本:数组){ scripts.forEach(元素=>{ 让node=document.createElement('script')作为HTMLScriptElement; node.type='text/javascript'; node.charset='utf-8'; node.async=true; node.addEventListener('load',(el:HTMLScriptElement,ev:Event)=>this.onLoad(el,ev),false); node.src=元素; this.head.appendChild(节点); }); } onLoad(el:HTMLScriptElement,ev:Event):任意{ this.loadedScripts.push(el.src) } },typescript,events,parameters,Typescript,Events,Parameters,错误消息: 没有与此调用匹配的重载。 重载第1个,共2个,'(类型:“load”,侦听器:(this:HTMLScriptElement,ev:Event)=>any,options?:boolean | AddEventListenerOptions | undefined):void',给出了以下错误。 类型为“(el:HTMLScriptElement,ev:Event)=>any”的参数不能分配给类型为“(this:HTMLScriptElement,ev:Event)=>any”的参数

错误消息:

没有与此调用匹配的重载。 重载第1个,共2个,'(类型:“load”,侦听器:(this:HTMLScriptElement,ev:Event)=>any,options?:boolean | AddEventListenerOptions | undefined):void',给出了以下错误。 类型为“(el:HTMLScriptElement,ev:Event)=>any”的参数不能分配给类型为“(this:HTMLScriptElement,ev:Event)=>any”的参数。 重载2/2’(类型:string,侦听器:EventListenerOrEventListenerObject,options?:boolean | AddEventListenerOptions | undefined):void’导致以下错误。 类型为“(el:HTMLScriptElement,ev:Event)=>any”的参数不能分配给类型为“EventListenerOreEventListenerObject”的参数。 类型“(el:HTMLScriptElement,ev:Event)=>any”不可分配给类型“EventListener”。


class ScriptLoader {

    private loadedScripts : Array<string> = new Array<string>();

    constructor(private head = document.getElementsByTagName('head')[0], ) {
        if (typeof(head) == "undefined")
            alert("A página não contém o elemento head.");
    }

    load(scripts: Array<string>) {
        scripts.forEach(element => {
            let node = document.createElement('script') as HTMLScriptElement;
            node.type = 'text/javascript';
            node.charset = 'utf-8';
            node.async = true;

            node.addEventListener('load', (el: HTMLScriptElement, ev: Event) => this.onLoad(el, ev), false);

            node.src = element;

            this.head.appendChild(node);
        });
    }

    onLoad(el: HTMLScriptElement, ev: Event) : any {
        this.loadedScripts.push(el.src)
    }  
}  
类脚本加载器{ private-loadedScripts:Array=new-Array(); 构造函数(private head=document.getElementsByTagName('head')[0],){ if(类型(头部)=“未定义”) 警惕(“página não contém o elemento head.”); } 加载(脚本:数组){ scripts.forEach(元素=>{ 让node=document.createElement('script')作为HTMLScriptElement; node.type='text/javascript'; node.charset='utf-8'; node.async=true; //修理 node.addEventListener('load',()=>this.onLoad(node),false); node.src=元素; this.head.appendChild(节点); }); } onLoad(el:HTMLScriptElement/*,ev:Event*/):任意{ this.loadedScripts.push(el.src) } }

    class ScriptLoader {

        private loadedScripts : Array<string> = new Array<string>();

        constructor(private head = document.getElementsByTagName('head')[0], ) {
            if (typeof(head) == "undefined")
                alert("A página não contém o elemento head.");
        }

        load(scripts: Array<string>) {
            scripts.forEach(element => {
                let node = document.createElement('script') as HTMLScriptElement;
                node.type = 'text/javascript';
                node.charset = 'utf-8';
                node.async = true;

                // fix
                node.addEventListener('load', () => this.onLoad(node), false);

                node.src = element;

                this.head.appendChild(node);
            });
        }

        onLoad(el: HTMLScriptElement/*, ev: Event*/) : any {
            this.loadedScripts.push(el.src)
        }  
    }