【问题标题】:How to handle any as parameter type in TypeScript? [duplicate]如何在 TypeScript 中处理任何参数类型? [复制]
【发布时间】:2021-01-26 01:39:00
【问题描述】:

我想使用这个通用辅助函数来创建表单数据:

function createFormData(data: any): FormData {
  const formData = new FormData();

  for (const key in data) {
    formData.append(key, data[key]);
  }

  return formData;
}

但是 ESLint 给了我一个unexpected any 警告。 当我将参数类型any 更改为object 时,它会显示data[key] 的以下错误消息:

元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{}”。 在“{}”类型上找不到具有“字符串”类型参数的索引签名

如何在此处修复我的代码以不显示错误消息或警告(不只是关闭 linter)?

【问题讨论】:

标签: javascript typescript


【解决方案1】:

您也可以提供值数据类型,而不是任何类型

function createFormData(data: {[key: string]: any}): FormData {
  const formData = new FormData();

  for (const key in data) {
    formData.append(key, data[key]);
  }

  return formData;
}

【讨论】:

  • ESLint 警告unexpected any 仍然显示
  • 所以你告诉我,因为他们在那个示例项目中做到了,这是正确的方法吗?
  • 这是我创建的,我也认为你需要为你的数据定义类型,如果使用键作为字符串抛出错误,你可能必须将键的类型添加为字符串跨度>
  • key: string 部分很好。但由于 any 关键字,它会显示警告。
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
  • 2021-03-25
  • 2018-03-24
  • 2020-05-12
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多