当Y是泛型

时间:2019-11-01 06:49:25

标签: typescript typescript-generics

我声明了一个接口“ Params”,该接口通过通用类型参数(即<Params extends BaseParams>() => {...my function...}

扩展了另一个接口“ BaseParams”

在此函数中,我声明了一个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

0 个答案:

没有答案