打字稿:无效的Object.assign类型?

时间:2018-01-30 15:30:12

标签: typescript

为什么Object.assign({}, null)在Typescript 2.6.2中输入为{} & null而不仅仅是{}

1 个答案:

答案 0 :(得分:1)

看看the TypeScript definition for Object.assign

assign

Object.assign<SourceType, TargetType>(sourceInstance, targetInstance)可以参数化,因此您可以拥有SourceType & TargetType。在这种情况下,源和目标将是上面类型定义中指定的const sourceInstance = { a: 'b' }; const targetInstance = { c: 'd' }; Object.assign(sourceInstance, targetInstance); // { a: 'b', c: 'd' } 的交集类型。

原因是他们可以拥有不同的属性。

{}

正如您所看到的,结果是两种类型的交集。因此,如果您传入空对象null{} & null,则会得到null的交集类型。

Object.assign允许

req.body,基本上会被忽略:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign