Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在typescript中定义公共接口_Typescript - Fatal编程技术网

如何在typescript中定义公共接口

如何在typescript中定义公共接口,typescript,Typescript,我想在一个函数中定义具有不同形式接口的有效负载 每个有效负载如下所示,我已将“UpdatePayload”接口定义如下: /* ex) payload interface const interface updateBodyPayload = { title: ... content: ... } */ /* ex) payload interface const interface updateStatePayload = { type: .. count: .. } */

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

每个有效负载如下所示,我已将“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>;

我犯了什么错误?

如果你想让
updatePayload
输入合并表单
updateBodyPayload
updateStatePayload
的结果,那么它必须像:(
&
而不是


如果要使
updatePayload
键入合并表单
updateBodyPayload
updateStatePayload
的结果,则必须如下所示:(
&
而不是

// function.ts
const exec = (body: updatePayload) => {
  const { title, content, type, count } = body;
  // -> property 'title', ... does not exists on type updatePayload
}
type updatePayload = Partial<updateBodyPayload & updateStatePayload>;
type updatePayload = {
  title?: string;
  content?: string;
  type?: string;
  count?: number;
}