TS错误:“导出的变量'withCreateSomething'具有或正在使用外部模块中的名称'React.ComponentClass'/但无法命名”

时间:2018-08-04 20:47:04

标签: javascript reactjs typescript graphql

我有一个graphql突变文件:

import gql from "graphql-tag";
import { graphql } from 'react-apollo';
import { SomeMutationVariables, SomeMutation } from "..schemaTypes"        

const someMutation = gql`
  mutation SomeMutation(
  $something: String!
  ) {
     createSome(
     input: {
      something: $something
     }
   )
  }
 `;



    export interface NewPropsCreateSomething {
   createSomething: ( variables:  SomeMutationVariable ) => void;
    }



     export const withCreateSomething = graphql<
      any,
      SomeMutation,
      SomeMutationVariable
      NewPropsCreateSomething
    >(createSomethingMutation, {
      props: ({ mutate }) => ({
       createSomething async variables => {
     if (!mutate) {
        return;
        }

        const response = await mutate({
        variables
        } );
       console.log( "response", response )  
           }
       })
    });

我无法生成代码,因为我被抛出错误: “导出的变量'withCreateSomething'具有或正在使用来自外部模块“ /../../../../node_modules/@types/react/index”的名称'React.ComponentClass',但无法命名”

似乎graphql正在使用反应类型;我可以通过导入react来消除错误:

import * as React from 'react';

但是我当然会收到此错误:  已声明“ React”,但从不读取其值。

我知道此错误已在其他帖子中出现,但由于此文件没有任何特定于React的代码,所以我找不到此情况,除了类型错误之外,没有任何理由要导入React。

我尝试避免使用@ ts-ignore,但到目前为止,这是唯一允许进行构建的方法。

感谢任何提出优雅解决方案的指针。

0 个答案:

没有答案