带有传播运算符的打字稿昆虫
Typescript insection with spread operator
我正在尝试做一些非常简单的事情:将类型化对象传递给函数,使用已知键对其进行扩充,然后 return 将两者相交的类型。
下面的代码似乎让我了解了大部分内容
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
成为对象?我已经尝试创建一个索引接口并对其进行扩展,但同样的错误仍然存在。
这是一个 TypeScript 错误。
将由 PR https://github.com/Microsoft/TypeScript/pull/13288
修复
我正在尝试做一些非常简单的事情:将类型化对象传递给函数,使用已知键对其进行扩充,然后 return 将两者相交的类型。
下面的代码似乎让我了解了大部分内容
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
成为对象?我已经尝试创建一个索引接口并对其进行扩展,但同样的错误仍然存在。
这是一个 TypeScript 错误。 将由 PR https://github.com/Microsoft/TypeScript/pull/13288
修复