Typescript:解决javascript内置的类型定义错误
我想在打字脚本中使用。遗憾的是,不支持带有表单元素的FormData构造函数,如中所述 我有以下代码:Typescript:解决javascript内置的类型定义错误,types,typescript,Types,Typescript,我想在打字脚本中使用。遗憾的是,不支持带有表单元素的FormData构造函数,如中所述 我有以下代码: var formEl = <HTMLFormElement> document.getElementById("myForm"); var formData = new FormData(formEl); 但是,如果包含该类型定义,则会出现以下错误: 错误TS2403:后续变量声明必须具有相同的类型。变量“FormData”的类型必须为“{new():FormData;proto
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = new FormData(formEl);
但是,如果包含该类型定义,则会出现以下错误:
错误TS2403:后续变量声明必须具有相同的类型。变量“FormData”的类型必须为“{new():FormData;prototype:FormData;}”,但此处的类型为“{new(form?:HTMLFormElement):FormData;prototype:FormData;}”
我如何解决这个问题
我如何解决这个问题
潜力1:
发送一份公关
潜力2:
就地更新已装运的lib.d.ts
:
declare var FormData: {
prototype: FormData;
new (form?: HTMLFormElement): FormData;
}
潜力3:
复制和自定义lib.d.ts
并使用--noLib
编译,并手动引用自定义lib.d.ts
潜力4:
绕过类型检查器
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = new window['FormData'](formEl);
var formEl=document.getElementById(“myForm”);
var formData=新窗口['formData'](formEl);
已经有一个。它的目标是在TypeScript 1.6中修复
在此之前,这是TypeScript中的一个简单解决方法:
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = <FormData> new (<any> FormData) (formEl);
即使在他们修复lib.d.ts问题后,这项功能仍应继续工作。VS2017 typescript库中存在一个错误(可能已在2017年4月的更新中修复)。您可以通过关闭Tools | Options | Text Editor | JavaScript/TypeScript | LanguageService中的LanguageService来绕过注意到的错误 只需取消选中“启用新的JavaScript语言服务”复选框 有关该问题的更多详情,请参阅
糟糕,我希望我能把新的声明包括进去。
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = <FormData> new (<any> FormData) (formEl);
var formData = new FormData(formEl);