为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript:如何显式地将类型传递给此函数的泛型

TypeScript:如何显式地将类型传递给此函数的泛型

胡说叔叔 2022-12-22 14:49:15
我正在学习 TypeScript,我正在尝试使用映射类型来编写一个函数,该函数只允许用户在对象上确实存在键时从对象中提取值。这是代码const obj = {    a: 1,    b: 2,    c: 3}function getValues<T, K extends keyof T>(obj: T, keys: K[]) {    return keys.map(key => obj[key])}getValues(obj, ['a', 'b'])所以在这里我定义了两个类型参数T并且K它们是由 TS 编译器推断的,因为当我调用函数时我没有显式地传入类型。现在我的问题是,如果我想将类型显式传递给函数,我应该如何重写函数呢?我想这样做是因为我很好奇这里的类型推断是如何工作的所以这是我的尝试getValues<typeof obj, string[] extends keyof typeof obj>(obj, ['a'])但是编译器并不高兴。存在解析错误Parsing error: '?' expected
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

假设您真的想显式传递一个类型,我认为extends在函数调用中不允许使用 using 。

getValues<typeof obj, keyof typeof obj>(obj, ['a'])


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信