我声明了一个接口“ Params”,该接口通过通用类型参数(即<Params extends BaseParams>() => {...my function...}
在此函数中,我声明了一个BaseParams
类型的变量。
我必须将此变量传递给接受Partial<Params>
的函数。
不幸的是,我收到一个错误:Type 'BaseParams' is not assignable to type 'Partial<Params>'.ts(2322)
我试图在函数外部进行操作并且它可以正常工作,所以仿制药似乎是一个问题,而且我对仿制药的理解还存在差距?
可复制的示例
interface BaseParams {
a: boolean;
}
const base: BaseParams = { a: true };
// this doesn't work
const func = <Params extends BaseParams>() => {
type PartialParams = Partial<Params>;
// Type 'BaseParams' is not assignable to type 'Partial<Params>'.ts(2322)
const partial: PartialParams = base;
};
// this works
interface Params extends BaseParams {
b: boolean
}
type PartialParams = Partial<Params>
const partial: PartialParams = base