Могу ли я использовать файлы ts точно так же, как я использую файлы js?

Я слышал о TypeScript, и он мне понравился, потому что мне всегда нравилось делать аннотации в своем коде. Однако мне пришлось бы переименовать все мои файлы .js в файлы .ts. Я хотел бы добавить аннотации к своим функциям со всеми возможностями TypeScript, не переименовывая файлы. Но, как я узнал позже, это невозможно. Итак, мой вопрос: могу ли я продолжать вводить код JavaScript в обычном режиме после переименования его в расширение .ts?

Я уже добавил некоторые аннотации, например

@param{string} argumentExplanation

и это очень помогает. Однако я хотел бы сделать больше, чтобы помочь в моем коде. Причина в том, что аннотации кода помогут мне создать будущую документацию по моему проекту.

Хм, вы не можете использовать его точно так же, потому что TS проверяет .ts и .js по-разному. JSDoc работает в файлах .js, а не в файлах .ts (см. ms/TS#42048). Это полностью отвечает на вопрос или я что-то упускаю из того, о чем вы спрашиваете?

jcalz 19.06.2024 22:01

без переименования моих файлов - почему именно переименование файлов, которые вы хотите использовать TS, является проблемой? Что вы пытаетесь решить, избегая этого?

Bartek Banachewicz 19.06.2024 22:03

А еще… «Но, как я узнал позже, это невозможно». Это не так? Вы, конечно, можете заставить TypeScript проверять ваши .js-файлы , но это не совсем то же самое. Не могли бы вы отредактировать, удалив этот бит, или уточнить, почему вы не можете просто использовать свои .js файлы с TypeScript?

jcalz 19.06.2024 22:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Да, весь код JavaScript выполняется внутри машинописного сценария, поскольку машинописный текст является расширенной версией JavaScript. Но использовать TypeScript для написания кода типа Javascript не имеет особого смысла, поступайте как хотите.

Чтобы не печатать, вы можете зайти в tsconfig.json и поставить strict: false

Таким образом, Typescript не будет жаловаться на отсутствие ввода кода и все будет работать практически так же, как Javascript.

Ответ принят как подходящий

При использовании Typescript к процессу компиляции подключается локальный сервер TS, который проверяет написанный код на соответствие аннотациям, чтобы выявить возможные ошибки во время компиляции.

Простое переименование файлов не активирует машинописный текст, необходимо выполнить процедуру настройки https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

Если ваш проект был создан вручную или не имеет процесса компиляции (например, веб-пакет, vite/rollup), вам придется немного поработать, следуя инструкциям по ссылке, приведенной выше.

Если вы загрузили проект с помощью чего-то вроде CRA (Create React App), я настоятельно рекомендую перезагрузить приложение для машинописного текста, используя инструменты поставщика, обычно расположенные в репозитории или на их основном веб-сайте документации, и скопировать существующий код (что звучит устрашающе, но это не так). на самом деле быстрая копипаста вместо глубокого погружения в необходимые конфигурации).

В качестве альтернативы, если вы изучаете сложные концепции, вы можете изучить JsDoc, который предоставляет некоторую помощь в аннотации типов без необходимости перенастраивать весь проект. https://jsdoc.app/

В конечном итоге TypeScript сделает вас лучшим программистом, который будет делать меньше ошибок, поэтому в него стоит погрузиться.

Большое спасибо! Я прочитаю документацию, прежде чем использовать ее в своем проекте.

Siael Alves 21.06.2024 02:49

Другие вопросы по теме

Проблема вывода типа с массивом универсальных объектов конфигурации с разными внутренними типами, которые зависят от другого внутреннего свойства
Почему добавление круглых скобок удаляет «только для чтения [x: число]: число;» из этого типа?
Введите 'строка | логическое значение не может быть назначено для ввода «никогда» в машинописном тексте
Как добавить динамические метаданные на страницу [slug] в маршрутизаторе приложений next.js
Программно переключить свойство, нулевое или необязательное, на обязательное в Zod
Кортеж, который принимает только одно вхождение определенного типа
Как указать значение по умолчанию (но не ноль) в числовом типе в форме zod и response-hooks?
Тип «неизвестный» не может быть назначен типу «HttpEvent<any>». Попытка создать перехватчик HTTP в приложении Angular
Next.js revalidateTag, revalidatePath не работает
Каковы различия между оператором удовлетворяет TypeScript и утверждениями типа?