Просто он не в node_modules/react лежит, а в node_modules/@types/react. Смысл в том, что декларационные файлы (.d.ts) могет лежать практически где угодно, и совсем не обязаны иметь прямого отношения к реальным js-файлам. Они просто объявляют типы. А так как много компонтентов написаны не на ts, а на js (в том числе react), то когда мы ставим эти зависимости, ts ничего не знает о их типах. Вот для решения этих проблем есть проект DefinitelyTyped. В нем дописывают типы для многих популярных компонентов, написанных не на ts, в том числе и для react. Потом эти компоненты выливаются в npm и имеют префикс @types. К примеру вот @types/react. В проект эти зависимости добавляются как devDependencies и нужны только для процесса разработки. В нашем package.json ты тоже найдешь их.
Ты в своем видео постояно обращаешься к конфигурационому файлу тайпскрипта index.d.ts, который у тебя лежит в папке react видимо в модулях у меня там нет такого файла в модулях вот и спрашиваю от куда этот конфиг взялся где все правила для типов определены?
Блин, твои вопросы из серии "Я в лесу цветок видел, не знаешь как он называется"? Учись прикладывать ссылки на файлы.
А файл inde.d.ts и global.d.ts ты через какой-то модуль устанавливал или просто с проекта на проект перекидываешь? И где они лежат, они у меня в сборке есть, я нашел какой-то но он практически пустой со стайлед компонентом.
Нет, где он может, он определяет. К примеру, если ты сделаешь Он тут поймет что это за тип, только ты не сможешь тут указать необязательные поля и не сможешь указать больше. И можно даже из него тип создать. И получишь тип: И можешь тогда пользователей так создавать: Но можно и расширить тип: И тогда уже новому пользователю можно задать емейл. Только обрати внимание, что создание типа User из объекта user совсем не делает объект user typeof User. Тот сам по себе. Мы просто говорим "А создай-ка нам из структуры такого-то объекта Тип, чтобы мы могли создавать подобные объекты с таким же типом и они были совместмы". И если мы делаем расширенный тип с новыми обязательными полями, то этот тип уже не будет совместим с исходным объектом. Вот можешь поиграться здесь: https://www.typescriptlang.org/play?#code/LAKAxg9...
Смотрю видос пытаюсь въехать, если честно думал, что тайпскрипт сам определяет к какому типу тот или иной объект относится, а получается, что мы сами должны сначала все определить и только тогда он будет понимать, что можно добавлять, а что нельзя.
Супер! Конечно: у себя раверну и вперет - смотреть. Спасибо!
Так я видел: готовлюсь к просмотру) 4 часа - это ни рау не шутки)
Дима, по возможно, тоже посмотри это видео, пусть не сразу, но час-два в день и вот уже посмотрел все. Там несколько растянуто, одно и то же в нескольких местах, но зато все же подробно все основные моменты рассматриваются. Практически со всем этим вы будете сталкиваться не раз, так что надо хотя бы примерно знать как такие вещи решаются, чтобы потом хотя бы спросить могли "напомни, как в таких случаях такое-то решается?".