Typescript函数参数依赖于其他参数

brccelvz  于 2023-01-18  发布在  TypeScript
关注(0)|答案(1)|浏览(126)

我遇到了一个问题,而试图创建一个函数的格式选项下拉。
这是用普通JS编写的代码。

const formatOptions = (options, keyAsLabel, keyAsValue) => {
   return options.map(option) => {
    return {
      label: option[keyAsName],
      value: option[keyAsValue],
    }
   })
}

目前,我已经尝试了这个代码

const formatOptions = <T>(
  options: T[],
  keyAsLabel: T,
  keyAsValue: T
) => {
  return options.map((option, i) => {
    return {
      id: i + 1,
      label: option[keyAsLabel],
      value: option[keyAsValue],
    }
  })
}

但此代码出现错误。
我想进行严格的类型检查,但不知道如何使第二个和第三个参数依赖于第一个参数

4xrmg8kj

4xrmg8kj1#

尝试使用keyof

const formatOptions = <T>(
  options: T[],
  keyAsLabel: keyof T,
  keyAsValue: keyof T
) => {
  return options.map((option, i) => {
    return {
      id: i + 1,
      label: option[keyAsLabel],
      value: option[keyAsValue],
    };
  });
};

相关问题