Есть ли причина использовать ключевое слово declare перед типами и интерфейсами?

я наткнулся на такой код:

declare type A = { ... };
declare interface B { ... }

из поиска declare ключевое слово (и ни один из хитов не указал мне на документы TypeScript по какой-то причине), declare используется, когда переменная существует в JavaScript, и вам нужно ссылаться на нее из TypeScript, поэтому вы объявляете компилятору, что эта переменная действительно существует.

все примеры, которые я нашел, используют это ключевое слово, используют его так:declare var a;

почему я должен использовать его в перед type или interface? Основываясь на моем понимании declare, это совершенно бесполезно, но компилятор не дает мне никаких ошибок.

1 ответов


похоже, я только что узнал, почему.

из этого github вопрос:

declare должен быть необязательным для псевдонимов типов и интерфейсов.

declare type и declare interface идентичны type и interface

так как мы уже отправили псевдонимы типов таким образом, люди должны были написать declare type несколько раз. Мы могли бы разбить их и сказать: "пиши!--3-->, а не declare type", но это был бы массовый перерыв для no реальный повод.

в общем, нет причин использовать declare для типов и интерфейсов.