为什么Object.assign({}, null)
在Typescript 2.6.2中输入为{} & null
而不仅仅是{}
?
答案 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