Как объявить экспорт для всех имен

#typescript

#typescript

Вопрос:

Я хочу создать определение для файла, загружаемого Webpack, чтобы TypeScript правильно его понимал. Я пытаюсь сделать что-то вроде этого:

 declare module "*.gql"
{
    import { DocumentNode } from "graphql";

    declare [key: string]: DocumentNode;
}
  

Такой, что любой именованный импорт из файла .gql будет иметь тип DocumentNode .

 import { MyQuery } from "./query.gql";
// MyQuery should have type DocumentNode
  

Как я могу этого добиться?

Ответ №1:

Я не знаю, слишком ли поздно, но вот как я это делаю:

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

  const value: DocumentNode;
  export = value;
}
  

также нашел это:

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

  const value: {
    [key: string]: DocumentNode;
  };
  export = value;
}
  

перейдите сюда