gpt4 book ai didi

typescript :无效的 Object.assign 类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:18 25 4
gpt4 key购买 nike

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

最佳答案

看看the TypeScript definition for Object.assign :

interface ObjectConstructor {
assign<T, U>(target: T, source: U): T & U;

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 的交集类型.

nullObject.assign 中允许并且基本上被忽略:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

关于 typescript :无效的 Object.assign 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com