const func = <T>(
obj: T,
attr: keyof T,
arr: T[typeof attr][],
) => {
}
const obj = {foo: 1, bar: true};
func(obj, 'foo', [1]);
func(obj, 'bar', [1]); // shouln't be ok
func(obj, 'foo', [true]); // shouln't be ok
func(obj, 'bar', [true]);
如何定义arr
参数类型,使TS在func
调用期间正确解析其类型,使其不总是number | boolean
,而是依赖于实际的attr
?