You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中Pick<Module, "id">[]类型参数的传参疑问

解决Type 'string'无法赋值给Pick<Module, "id">的问题

你遇到的问题核心是函数参数类型不匹配:Pick<Module, "id">表示仅包含id属性的对象,而非单纯的字符串,直接传字符串ID自然会报错。下面是两种可行的解决办法:

方法1:将字符串ID包装为符合要求的对象数组

把每个字符串ID放到包含id属性的对象里,组成数组传入:

// 构造符合Pick<Module, "id">类型的参数
const targetModules = [
  { id: 'module_01' },
  { id: 'module_02' }
];
// 调用函数
this.getModuleMeasures(targetModules);

方法2:修改函数参数类型为字符串数组(业务允许时)

如果你的业务逻辑只需要ID字符串,没必要传递完整对象,可以直接调整函数的参数类型:

// 修改后的函数定义
getModuleMeasures(modules: string[]) {
  return this.store$.select(getModuleMeasures(modules));
}

// 直接传字符串数组调用
this.getModuleMeasures(['module_01', 'module_02']);

补充说明:Pick<Module, "id">是TypeScript的内置工具类型,作用是从Module类型中提取出id属性对应的结构——也就是一个只有id字段的对象,所以参数必须是这种对象的数组,而非字符串数组。

内容的提问来源于stack exchange,提问作者Priyanka Rajendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:15:55