我想在打字稿中使用FormData.遗憾的是,生成的typescript定义文件不支持带有Form元素的FormData构造函数,详见 Typescript Issue#1074.
我有以下代码:
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = new FormData(formEl);
Run Code Online (Sandbox Code Playgroud)
代码提供以下错误,因为生成的定义是错误的:
错误TS2346:提供的参数与呼叫目标的任何签名都不匹配.
我想使用以下声明:
declare var FormData: {
prototype: FormData;
new (form?: HTMLFormElement): FormData;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我包含该类型定义,我会收到此错误:
错误TS2403:后续变量声明必须具有相同的类型.变量'FormData'必须是'{new():FormData; 原型:FormData; }',但这里有类型'{new(form?:HTMLFormElement):FormData; 原型:FormData; }".
我该如何解决这个问题?
我该如何解决这个问题?
发送 PR。
更新已发货lib.d.ts到位:
declare var FormData: {
prototype: FormData;
new (form?: HTMLFormElement): FormData;
}
Run Code Online (Sandbox Code Playgroud)
复制并自定义lib.d.ts并编译--noLib并手动引用您的自定义lib.d.ts.
绕过类型检查器
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = new window['FormData'](formEl);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5125 次 |
| 最近记录: |