反应中的打字稿对象解构

时间:2018-12-25 11:40:41

标签: reactjs typescript

我正在使用带有打字稿的graphql并做出反应,并且我无法弄清楚如何在不出现tslint错误no-object-literal-type-assertion的情况下对对象进行解构。我可以停用该错误,但是我有充分的理由这么做,然后再将其关闭...

graphql查询在几乎每个嵌套级别上都可以为空。所以当我用apollo自动生成类型定义时,我得到以下界面...

export interface TipsPageQuery {
  content: TipsPageQuery_content | null;
  toc: TipsPageQuery_toc | null;
}

export interface TipsPageQuery_content {
  __typename: "Mdx";
  code: TipsPageQuery_content_code | null;
  excerpt: string | null;
  frontmatter: TipsPageQuery_content_frontmatter | null;
}

然后我用来在组件中进行分解的代码就是这样...

const DocPage = ({ data, pageContext, location, classes }: DocPageProps) => {
  const { content, toc }: TipsPageQuery = data;
  const { code }: typeof content = content;

,我得到错误Property 'code' does not exist on type 'TipsPageQuery_content | null。我可以这样破坏,但是随后我从tslint收到关于object-literal-type-assertion ...

的错误消息
const { code } = content || {} as keyof typeof content

0 个答案:

没有答案