Я пытаюсь написать файл определения машинописного текста для уже существующей библиотеки. Эта библиотека (react-filepond) экспортирует объект с именем File
(как видно из < href="https://github.com/pqina/react-filepond" rel="nofollow noreferrer">пример использования в файле README).
Проблема в том, что другой интерфейс, который создает эта библиотека, использует Интерфейс файлов JS.
Итак, теперь в моем файле определения машинописного текста мне нужно каким-то образом управлять двумя определениями типа File
. Мое решение состояло в том, чтобы объявить объект, который создает библиотека, как другое имя в моем файле определения и просто экспортировать его как файл.
declare class FilePondFile extends React.Component<FilePondFileProps> { }
export { FilePondFile as File };
Это кажется прекрасным и стильным, когда я использую этот шрифт в своем собственном проекте. Но как сторонник OSS, я хочу сделать это определение доступным для сообщества через репозиторий Definitely Typed. .
Их линтер выдает мне ошибку, хотя это, по-видимому, препятствует просмотру моего PR:
Error: C:/dev/DefinitelyTyped/types/react-filepond/index.d.ts:22:1
ERROR: 22:1 strict-export-declare-modifiers 'declare' keyword is redundant here.
See: https://github.com/Microsoft/dtslint/blob/master/docs/strict-export-declare-modifiers.md
На первый взгляд кажется достаточно простым удалить declare
перед class FilePondFile
, однако, если я его удалю, я получаю другую ошибку:
A 'declare' modifier is required for a top level declaration in a .d.ts file.
Поэтому я не уверен, как справиться с этим противоречием. У сопровождающих Definitely Typed, похоже, нет времени на помощь, поскольку мой PR был только что помечен как «Требуется внимание автора», несмотря на то, что я четко изложил эту проблему.
Есть ли у кого-нибудь предложение, что я могу сделать, чтобы не дублировать ссылку на File
в этом файле определения, а также передать линтер с определенным типом?