1

我正在使用graphql-tag。我的文件是这样的。

./operation.graphql

Query User {
   ...
}

./test.ts

import { User } from './operation.graphql'; /// Module ''*.graphql'' has no exported member 'User'.

./index.d.ts

declare module '*.graphql' {
    import { DocumentNode } from 'graphql';

    const value:DocumentNode;

    export default value;
}

应用程序运行良好,但我想防止该错误。

当我执行默认导入时,效果很好,但正如您所见,我在命名导入时遇到错误。

这个怎么申报?谢谢。:)

4

1 回答 1

4

如果每个 GraphQL 文件您想要的导出名称不同,TypeScript 将不会解析您的 GraphQL 文件以自动找出它。要么您需要为每个 GraphQL 文件单独声明一个模块(并且您需要设置您的baseUrlandpaths以便您可以使用非相对导入,或者将文件放在d.ts每个 GraphQL 文件旁边而不是 using declare module,我不是当然):

declare module 'operation.graphql' {
    import { DocumentNode } from 'graphql';

    export const User: DocumentNode;
}

或者您可以放弃并让所有 GraphQL 文件为以下类型any

declare module '*.graphql';
于 2018-08-30T19:40:25.240 回答