В чем разница между использованием функции экспорта объявления и функции экспорта в файле .d.ts - PullRequest
2 голосов
/ 19 июня 2020

Я видел в файлах объявлений машинописного текста, что люди пишут замедления так:

export function useTheme(): ITheme;

Но у меня создалось впечатление, что ключевое слово declare было необходимо для написания замедления типов для функций, которые определены где-то еще?

Если это действительно так, а также export declare function useTheme(): ITheme;, то есть ли какая-то причина выбирать тот или иной?

1 Ответ

1 голос
/ 20 июня 2020

Делая это просто, в коде, если вы хотите создать какое-то объявление, как будто вы знаете, что какая-то функция существует глобально, но компилятор этого не знает - вы используете ключевое слово declare. Но файл определения немного другой. Поскольку это фактически файл определения, там не должно быть ничего, кроме деклараций, поэтому эти файлы обрабатывают все сущности как декларации, независимо от того, использовали ли вы ключевое слово declare или нет. Использование ключевого слова declare является просто своего рода соглашением, которое, очевидно, рекомендуется, поскольку в этом случае мы не должны указывать тип контента на основе расширения. Здесь компилятор TypeScript знает, что d.ts является файлом объявления, но какой-то другой компилятор может не

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...