@Boris007

Что нам дает опция declaration если она ничего не меняет в импорте?

Почитал про декларации типов и показалось, что расширение d.ts нам дает возможность добавить типы в глобальную область видимости
Но у меня получилось так, что их все равно надо импортировать из файлов, причем не важно d.ts или ts, ничего не меняется
И выходит так, что кроме понимания того, что у нас в файлах с расширением d.ts лежат типы, больше ничего
В документации нашел такие настройки, но что с ними, что без, что с флагом false, у меня ничего не изменилось
{
  "compilerOptions": {
    "declaration": true,
    "declarationDir": "./types"
  }
}


Я как-то не так настроил декларирование типов или расширение d.ts не про то, что нам больше не надо писать
import { User } from 'types/user.js
const user: User = ...


Мне казалось это расширение про то, что я просто пишу
const user: User = ...
И не использую import User, а он сам берется из некого хранилища декларированных типов TS из-за того, что этот тип находится в файле d.ts
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
Опция declaration влияет на то, будут ли собираться .d.ts файлы при сборке из js в ts.

Если у Вас рядом лежат файлы user.js и user.d.ts то при импорте user.js из user.d.ts будут взяты для него типы, при этом содержимое user.js будет полностью проигнорировано компилятором ts, оно пойдет в сборку как есть.

Глобальные типы можно объявить, если положить .d.ts файл в корень проекта (ну или в ту папку, на которую он должен влиять), при этом не должно быть одного имени с .js файлом, то есть должен быть самостоятельным.
Но правильнее такое делать через опцию types.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы