Теперь появился TypeScript, для меня это захватывающая новость, но как мне преобразовать все существующие файлы JavaScript в TypeScript?
typescript
javascript
Gisway
источник
источник
Ответы:
Боюсь, это будет очень проблематично. TypeScript - это надмножество JavaScript . Это означает, что весь допустимый код JavaScript также является допустимым кодом TypeScript. Что совершенно неправильно. Следующий код верен в JavaScript, но создает ошибку в TypeScript:
Вы можете получить динамическое поведение JavaScript, объявив данные как "окружающие"
Теперь это будет работать и в TypeScript. Тем не менее вы можете изменить расширение файла .js на .ts и передать этот файл компилятору TypeScript. Это меня действительно смутило, и я задал вопрос в IRC-канале TypeScript на freenode. Оказалось, что компилятор Typescript проверяет свой ввод на корректный JavaScript и просто ничего не делает, если что-то находит. Интуитивно это звучит хорошо. Вы должны иметь возможность «преобразовать» весь свой JavaScript в Typescript, просто обновив расширения файлов, и все готово. К сожалению, это не работает должным образом. Предположим, у вас есть этот код:
Изменить: я только что попытался скомпилировать это, и это не сработало. Извините, похоже, я ошибся: компилятор TypeScript даже не принимает чистый JavaScript. Постараюсь выяснить, что пошло не так.
Вы изменили расширение файла на .ts и используете функцию func в другом коде. Сначала все вроде нормально, но потом обнаруживается некрасивая ошибка. Вы решаете, что проверка статического типа, вероятно, вам поможет, и меняете код на:
Но теперь это уже недействительный код JavaScript, и компилятор будет генерировать множество сообщений об ошибках. Ведь у данных нет члена «z». ... Этого поведения можно было бы избежать, если бы тип по умолчанию всегда был бы "любой", но тогда вывод типа был бы совершенно бесполезен.
Так как же решить эту проблему? Ответ: файлы декларации. Вы можете использовать свой код JavaScript «как есть» в проекте и при этом получать статическую проверку типа с помощью нескольких файлов .d.ts. Они сообщают компилятору, какие переменные, методы и «классы» объявлены в файле JavaScript, включая их типы. Поэтому они позволяют проверять типы во время компиляции и использовать фантастический интеллект. Файл .d.ts для моего примера будет
Сохраните его как «myjsfile.d.ts» и импортируйте его в машинописный текст с помощью
обязательно включите скрипт JavaScript в свой html-файл над скомпилированным машинописным текстом. Вот интересная ссылка . Возможно, вас заинтересует раздел «Превращение JavaScript в TypeScript».
источник
noEmitOnError
он выключен, он все еще может работать и передавать свою транспиляцию. Таким образом, хотя он показывает ошибки (что беспокоит), вы можете фактически игнорировать эти ошибки и использовать транспиляцию TypeScript, несмотря на это (позволяя, например, постепенный переход от JS к TS). Кроме того, по крайней мере, некоторые ошибки можно отключить с помощью переключателей вродеnoImplicitAny
(возможно, все, хотя и IDK).Обновление: инструмент подробно описан в этом посте
ReSharper, начиная с версии 9 ( доступны сборки EAP ), имеет функцию автоматического преобразования кода JavaScript в TypeScript. Вы можете начать с переименования файла .js в .ts и увидеть такие предложения R #:
Не пробовал на реальных примерах. Но он способен преобразовывать большое количество шаблонов JavaScript.
источник
Из терминала (mac):
Переименовывает все файлы .js в .ts
Это несколько иронично, но, как указывает Бенджамин выше, файлы JavaScript являются допустимыми TypeScript . Если вы хотите добавить типы, классы, интерфейсы и т. Д. В свой JavaScript - вам придется самостоятельно спроектировать и изменить свой код, используя эти концепции - для этого мало / нет автоматического преобразования.
С GNU findutils (большинство * nixes) + Bash просто выполните:
источник
var a = 5; a = "";