0

我想做一个function接受string第一个参数的,然后只接受第二个object参数,如果它有第一个参数作为键,一个boolean值:

const checkFlag = (str:string, obj) => obj[str]

这可行,但不可取(首先将对象泛型):

const checkFlag = <K extends {[key:string]:boolean}, T extends keyof K>(str:T, obj:K) => obj[str]

导致类型错误的这些结果: 在此处输入图像描述

在此处输入图像描述

我可以使用哪些类型?

4

1 回答 1

0

刚刚找到我的答案:

const checkFlag = <T extends string , K extends {[key in T]:boolean}>(str:T, obj:K) => obj[str]

导致这些类型错误: 在此处输入图像描述 在此处输入图像描述

于 2019-03-08T16:12:45.300 回答