Typescript &引用;可分配给类型为';P';,但是';P';可以用约束的不同子类型“quot;”实例化;,使用Omit util类型时

Typescript &引用;可分配给类型为';P';,但是';P';可以用约束的不同子类型“quot;”实例化;,使用Omit util类型时,typescript,higher-order-functions,Typescript,Higher Order Functions,我正在尝试创建一个高阶函数,用于React,但为了简单起见,它没有任何JSX 基本上,我在这里尝试实现的是,我有一个高阶函数,它将向函数调用中注入一些必需的值 也就是说,传递到HOF的函数需要这些参数。而从HOF返回的函数将不会 这是我的密码: 类型CardProps={ 标题:字符串; somethingFromHoc:string; } const createCard=(道具:CardProps)=>道具; 类型HocProps={ somethingFromHoc:string; }

我正在尝试创建一个高阶函数,用于React,但为了简单起见,它没有任何JSX

基本上,我在这里尝试实现的是,我有一个高阶函数,它将向函数调用中注入一些必需的值

也就是说,传递到HOF的函数需要这些参数。而从HOF返回的函数将不会

这是我的密码:

类型CardProps={
标题:字符串;
somethingFromHoc:string;
}
const createCard=(道具:CardProps)=>道具;
类型HocProps={
somethingFromHoc:string;
}
类型DerivedProps=省略;
带某物的常数=(fn:(道具:P)=>P)=>{
返回(props2:DerivedProps)=>{
const newProps:P={…props2,somethingFromHoc:“hello”};//错误!
返回fn(新道具)
}
}
const HocCard=带有某些内容(创建卡);
胡卡({
标题:“你好”
}); 
我怀疑问题出在
DerivedProps

也就是说,DerivedProps意味着“只是一个对象,它是原始props类型中的所有内容,除了那些由HOC创建的值”

当我再次将它们合并在一起时,我希望
HocProps+DerivedProps=OrignalProps
总是正确的

我错了吗

我始终可以通过以下方法消除此错误:

const newProps : P = { ...props2, somethingFromHoc: "hello" } as P;
但这是否有可能是错误的

以下是问题的简化版本:

const anotherThing=

(输入:DerivedProps):P=>{ 返回{ …输入, 来自Hoc的东西:“你好” };j }


这看起来可能是TypeScript的设计限制: