2015-10-26 91 views
2

我剛剛開始探索新的JavaScript想法,對此我印象深刻。乍一看,CoffeeScript和TypeScript都有一些很棒的功能。它們都被編譯爲JavaScript。 CoffeeScript非常棒,因爲它使代碼變得更簡單,更清晰。另一方面,TypeScript使我們有可能構建複雜的應用程序。是否可以混合使用TypeScript和CoffeeScript?

是否可以混合使用TypeScript和CoffeeScript?我的意思是 - 利用他們在同一個文件中的優勢?

回答

5

簡答:沒有。

您需要編譯一個的CoffeeScript /打字稿文件,JavaScript文件,這意味着該文件,作爲一個整體,必須語法正確爲給定的語言。

CoffeeScript和TypeScript在語法上不可互換。充其量,你將不得不求助於語法使用方面的一個最低公分母,但這將完全破壞使用這兩者中的任何一個而不是純JavaScript的目的。

3

你不能和它是真的是個壞主意。假設您可以在一個文件中包含CoffeeScript和TypeScript,那麼您需要可以在兩者中編程的開發人員,因此您的產品將更加昂貴。此外,您將失去使用lints檢查代碼的合理機會。

我無法想象當將CoffeeScript和TypeScript結合使用時,模塊(commonjs,AMD,ES6,...)會遇到什麼樣的麻煩。

如果您使用的是一種語言,您通常會從其作者教程中獲得如何正確使用該語言的功能。當你混合使用語言時,你將不得不想出「在我的環境中做X的正確方式」。這些挑戰聽起來很小,但對於任何嚴肅的項目,他們都可能是致命的。

如果您可以選擇,我會推薦使用TypeScript,因爲它可以避免大量運行時錯誤。這並不像CoffeeScript那麼美觀,但這通常不是你付出的。

1

那麼,如果你想嘗試一下,你總是可以創建一個CoffeeScript類語言,它具有類型化變量並編譯爲TypeScript(編譯爲JavaScript)。我認爲這會比實際教授CoffeeScript類型變量或直接編譯爲JS容易得多。查看CoffeeScript's source以瞭解他們如何解析,轉換並打印出生成的代碼。編寫一個轉譯程序實際上並不像聽起來那麼複雜。

1

看一看compiled-coffee至極狀態:

你喜歡打字稿的類型安全和 的CoffeeScript的簡潔的語法?在這種情況下,CompiledCoffee適合你!它通過定義文件將 CoffeeScript與TypeScript的類型系統相結合。 您可以在 中創建一個* .coffee文件和一個* .d.ts文件,其名稱與您(可選)鍵入的內容相同。休息是自動處理的。

相關問題