使用扩展运算符

时间:2017-10-24 10:38:00

标签: javascript typescript intersection

我正在尝试做的很简单:将一个打字对象传递给一个函数,用已知的键扩充它,然后返回一个与两者相交的类型。

以下代码似乎让我大部分时间

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点差运算符上收到以下错误:

Spread operator error

如何强制T成为对象?我已经尝试创建索引接口并对其进行扩展,但同样的错误仍然存​​在。

1 个答案:

答案 0 :(得分:3)

这是一个TypeScript错误。 它将由PR https://github.com/Microsoft/TypeScript/pull/13288

修复