如何在打字稿中定义通用接口

dsfdsf2fafad

我想在一个函数中定义具有不同形式的接口的有效负载。

每个有效负载如下,我已经定义了“ UpdatePayload”接口,如下所示:

/*
ex) payload interface
const interface updateBodyPayload = {
  title: ...
  content: ...
}
*/

/*
ex) payload interface
const interface updateStatePayload = {
  type: ..
  count: ..
}
*/

// Payload Merge interface
export type updatePayload = Partial<updateBodyPayload | updateStatePayload>;

但是,函数内部的代码产生以下错误:

// function.ts
const exec = (body: updatePayload) => {
  const { title, content, type, count } = body;
  // -> property 'title', ... does not exists on type updatePayload
}

我犯了什么错?

d

如果您想updatePayload输入type是合并formupdateBodyPayload和的结果updateStatePayload,那么它必须类似于:(&而不是|

type updatePayload = Partial<updateBodyPayload & updateStatePayload>;

现在updatePayload将像:

type updatePayload = {
  title?: string;
  content?: string;
  type?: string;
  count?: number;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在打字稿中定义匿名通用接口?

如何在打字稿中定义对象类型的对象

如何在打字稿中“返回”外部函数定义

如何在打字稿中定义计算属性

如何在打字稿中定义嵌套字典类型

如何在打字稿中定义const数组

如何在打字稿中定义此对象?

如何在打字稿中定义选项部分?

如何在打字稿中有意定义“空接口”

在打字稿中定义功能类型,功能接口

如何在打字稿中键入通用合并功能

在打字稿中,如何定义通用函数的专用版本?

如何在打字稿中导入嵌套接口

如何在打字稿中导出接口集合

如何在打字稿中声明一组通用容器?

如何在打字稿中为通用参数添加“新的”约束?

如何在打字稿 2.8.3 中获取通用地图的大小

如何在打字稿中创建属性数量未知的接口?

如何在打字稿中的类方法上强制执行函数类型接口?

如何在打字稿3.0中强制接口实现枚举的“实现”键?

如何在打字稿中实现具有多个匿名函数的接口

如何在打字稿中为特定用例编写接口?

如何在打字稿中对模型接口进行单元测试?

如何在打字稿中创建接口适配器?

如何在使用通用参数作为属性名称的打字稿中声明通用接口?

如何在打字稿中未定义函数结果的定义

如何在打字稿类型定义中使用常量?

如何在打字稿中创建的对象中定义函数

如何在打字稿中定义 5 个元素的有限集?