我正在尝试做的很简单:将一个打字对象传递给一个函数,用已知的键扩充它,然后返回一个与两者相交的类型。
以下代码似乎让我大部分时间
interface Success {
success: boolean
}
interface Named {
name: string
}
type Resolver<T> = Success & T
function test<T>(input: T): Resolver<T> {
return {
success: true,
...input
}
}
const person: Named = { name: 'Bob' };
const res = test<Named>(person);
// `res.success` and `res.name` are inferred
但是,我在...input
点差运算符上收到以下错误:
如何强制T
成为对象?我已经尝试创建索引接口并对其进行扩展,但同样的错误仍然存在。