我正在使用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;
}
应用程序运行良好,但我想防止该错误。
当我执行默认导入操作时,效果很好,但是如您所见,在命名导入中出现错误。
如何声明呢?谢谢。 :)
答案 0 :(得分:2)
如果每个GraphQL文件所需的导出名称不同,TypeScript不会解析您的GraphQL文件以自动找出它。您需要为每个GraphQL文件使用单独的模块声明(并且需要设置baseUrl
和paths
,以便可以使用非相对导入,或者可以放置{{1 }}文件与每个GraphQL文件一起使用,而不是d.ts
,我不确定):
declare module
或者您可以放弃并让所有GraphQL文件的类型为declare module 'operation.graphql' {
import { DocumentNode } from 'graphql';
export const User: DocumentNode;
}
:
any