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) } }
错误消息: 没有与此调用匹配的重载。 重载第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”。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”的参数
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)
}
}