/** * Strip all the __typenames from the payload. */ interface WithTypename { __typename?: string; }; type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; const omitTypename = <T extends WithTypename>({ __typename, ...rest }: T): Omit<T, '__typename'> => ({ ...rest });
{ __typename, ...rest } .
{ __typename, ...rest }
here 是最近的。
一种可能的解决方法是使用 Object.assign
Object.assign
/** * Strip all the __typenames from the payload. */ interface WithTypename { __typename?: string; }; type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; const omitTypename = <T extends WithTypename>(o: T): Omit<T, '__typename'> => { let r = Object.assign({}, o); delete r.__typename; return r; }