Javascript 如何在TypeScript中处理任何as参数类型?
我想使用此通用帮助器函数创建表单数据:Javascript 如何在TypeScript中处理任何as参数类型?,javascript,typescript,Javascript,Typescript,我想使用此通用帮助器函数创建表单数据: 函数createFormData(数据:任意):FormData{ const formData=new formData(); for(常量输入数据){ formData.append(key,data[key]); } 返回表单数据; } 但是ESLint给了我一个意想不到的警告。 当我将参数类型any更改为object时,会显示数据[键]的以下错误消息: 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{}”。 在类型
函数createFormData(数据:任意):FormData{
const formData=new formData();
for(常量输入数据){
formData.append(key,data[key]);
}
返回表单数据;
}
但是ESLint给了我一个意想不到的警告。
当我将参数类型any
更改为object
时,会显示数据[键]
的以下错误消息:
元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{}”。
在类型{}上找不到具有“string”类型参数的索引签名
我如何在这里修复代码,以便不显示错误消息或警告(而不只是关闭门楣)?您可以提供值数据类型,而不是其他类型
function createFormData(data: {[key: string]: any}): FormData {
const formData = new FormData();
for (const key in data) {
formData.append(key, data[key]);
}
return formData;
}
@GuyIncognito的副本我认为这不是副本。我明确要求函数参数处理,以及如何在使用任何ESLint警告时超越ESLint警告。ESLint警告
意外的任何仍在显示。因此,您告诉我,因为他们在该示例项目中做到了这一点,这是正确的方法?这是我创建的,此外,我认为您需要为数据定义类型,如果将key用作字符串时出现错误,您可能必须将key的类型添加为stringkey:string
部分就可以了。但是由于any
关键字,它会显示一条警告。