2015-10-26 4 views
2

Я только начал изучать новые идеи JavaScript, и я очень впечатлен. На первый взгляд, у CoffeeScript и TypeScript есть отличные возможности. Они оба скомпилированы в JavaScript. CoffeeScript отлично, потому что он делает код короче и понятнее. С другой стороны, TypeScript дает нам возможность создавать сложные приложения.Можно ли смешивать TypeScript и CoffeeScript?

Можно ли смешивать TypeScript и CoffeeScript? Я имею в виду - воспользоваться ими обоими в одном файле?

ответ

5

Короткий ответ: нет.

Вы должны составить в/Машинопись файл CoffeeScript в файл JavaScript, а это значит, что этот файл, в целом, должен быть синтаксически правильным для данного языка.

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

3

Вы не можете это действительно плохая идея.

Предположим, что вы можете иметь CoffeeScript и TypeScript в одном файле, тогда вам нужны разработчики, которые могут программировать в обоих из них, поэтому ваш продукт будет дороже. Кроме того, вы потеряете любую разумную возможность использовать lints для проверки кода.

Я даже не представляю, какие проблемы вы будете испытывать с помощью модулей (commonjs, AMD, ES6, ...) при объединении CoffeeScript и TypeScript.

Если вы используете один язык, вы, как правило, получаете от своих авторов учебники, как правильно делать вещи на этом языке. Когда вы смешиваете языки, вам придется придумать «что такое правильный способ сделать X в моей среде». Эти вызовы кажутся мелочными, но для любого серьезного проекта они могут быть смертельными.

Если вы можете выбрать, я бы рекомендовал TypeScript, потому что он избавляет вас от тонны ошибок времени выполнения. Это не так красиво, как CoffeeScript, но это не то, за что вам платят, как правило.

1

Ну, если вы хотите попробовать, вы всегда можете создать язык, подобный CoffeeScript, который имеет типизированные переменные и компилирует TypeScript (который компилируется на JavaScript). Я думаю, что это было бы намного проще, чем на самом деле преподавать типизированные для CoffeeScript переменные или напрямую скомпилировать JS. Посмотрите на CoffeeScript's source, чтобы узнать, как они анализируют, преобразуют и распечатывают сгенерированный код. Написание транспилятора на самом деле не так ужасно усложняется, как может показаться.

1

Посмотрите compiled-coffee Wich состояний:

вам нравится типобезопасность машинописного текста и лаконичный синтаксис CoffeeScript ли? В этом случае CompiledCoffee для вас! Он объединяет CoffeeScript с системой типа TypeScript через файлы определений. Вы создаете файл *. Coffee и файл * .d.ts с тем же именем в , который вы (необязательно) набираете. Отдых обрабатывается автоматически.

Смежные вопросы