TypeScriptに぀いおの倧声

TypeScriptず初めお出䌚い、友達になっおからしばらく経ちたした。 圓時、バヌゞョンはただ1ナニットを超えおいたせん 。 そしお最近、 リリヌス1.7がリリヌスされたした 。 この間、私たちはお互いに慣れ、倚くの成功ず倱望を経隓したした。 独立した蚀語ずしおのこのJavaScriptの方蚀に぀いおの私の印象ず考えを少し共有したいず思いたす。 そのような投皿のアむデアは、同僚ず別のホリバヌに぀いお議論するずきに自然に思い぀きたした。

それで、 TypeScript自䜓は正確に䜕ですか -おそらく誰にも秘密ではありたせん。 しかし、それでも、これはMicrosoftによるJavaScriptぞの静的型付けの詊みです。 コヌドの䟋ずそれによっお解決できるタスクの䟋は、 公匏Webサむトたたはここのハブにありたす。 ハブには同様のTypeScriptの蚘事が既にありたす䞀般的な印象 、したがっお、繰り返さないために、私は私の個人的な経隓に基づいお、蚀語で䜜業するこずの長所ず短所を匷調するこずにしたした。 蚀語の長所ず短所を思い出しおリストするのは簡単ではありたせんでした。


蚀語の人気


TypeScriptプロゞェクトは、Microsoftによっお䜜成されたした。 実際、その䜜成者はAnners Halesbergです。 圓初から、TypeScriptは柔軟性ずパフォヌマンスのためにすぐに人気を博したした。 JavaScriptで曞かれた倚くのプロゞェクトがTypeScriptに移怍され始めたした。 この蚀語ぞの関心の高たりは、この蚀語で実装された倚くのアむデアが埌に新しいJavaScript暙準の䞀郚になったずいう事実にも起因しおいたす。 Angular 2.0やvscodeなどの倧きなプロゞェクトを含め、この蚀語で䜜成されるプロゞェクトはたすたす増えおいたす。

暩嚁ある人々の声


TypeScriptは、間違いなく最高のフロント゚ンドJavaScript蚀語の1぀です。 生成するコヌドが最も魅力的に芋えたす。 そしお、圌は宣蚀やクラスのようなものを実装するためにECMAScript暙準の負荷を取り陀くこずができるず思いたす。 Andersは、この機胜がプリプロセッサによっお十分にサポヌトされおいるこずを瀺したため、メむン蚀語を倉曎する必芁はありたせん。

JavaScriptでの無料のタむピングは蚀語の長所の1぀であり、タむプチェックは過倧評䟡されおいるず思いたす。 TypeScriptは利䟿性を高めすぎたす。 そしお、これは私が喜んで支払う䟡栌ではありたせん。

ダグラス・クロックフォヌドはJSLintの䜜成者です。 オリゞナル

Visual Studioナヌザヌにずっお、TypeScriptは非垞に優れた開発ツヌルであり、ES6にも非垞に準拠しおいたす。 私はこの蚀語に぀いおもっず話すこずができたしたが、それをDartず比范する理由は芋圓たりたせん。

Brendan IkeはJavaScriptの創蚭者です。 オリゞナル

私はCoffeeScriptの倧ファンですが、CoffeeScriptは独自の構文を持぀別の蚀語です。 TypeScriptで気に入っおいるのは、静的型付けにより、コンパむルプロセスに譊告ずスマヌトコヌドリファクタリングを提䟛できるこずです。 これに加えお、コヌドナビゲヌションが簡単になりたす。 CoffeScriptの珟圚のバヌゞョンでは、このような機胜は䜿甚できたせん。

Scott Hanselmanはマむクロ゜フトの゚バンゞェリストです。 オリゞナル


長所


TypeScriptの利点に぀いおはかなり倚くのこずが曞かれおいたす。 したがっお、その利点を指摘しようずしたす。



短所


ほずんどの堎合、TypeScriptは賞賛されおいるように思えたす。 したがっお、Typescriptの䜕が問題なのかに぀いおの投皿を曞きたいず思いたした。 結局のずころ、短所を芋぀けるのは簡単ではありたせんでした。



静的型付けに぀いお少し


すべおの開発者の生掻の䞭で、圌は喜びのためにコヌドを曞くずきがありたす。 それがホヌムプロゞェクトであろうず、あるいはれロから曞き始めたばかりのプロゞェクトのチヌムワヌクであろうず。 これは、同僚ずのコヌドの競合に぀いお倚くのこずを考え、゚ラヌを探す必芁がない玠晎らしい瞬間の1぀です。 しかし、プロゞェクトは成長しおおり、動的に型付けされた蚀語JavaScriptでコヌドを蚘述するず、型を含む新しい機胜ずバグが生い茂りたす。

この堎合の解決策は䜕ですか テストを曞く

しかし、コンパむルの段階でマシンが䜕をうたく凊理できるかを確認する必芁があるこずを認めなければなりたせん。 静的型付けを䜿甚する蚀語は、型゚ラヌに関連する远加のテストを䞍必芁に蚘述するこずを防ぎたす。 したがっお、タむプを無芖しない堎合、TypeScriptにはJavaScriptよりも倧きな利点がありたす。

簡単な䟋を芋おみたしょう。


2぀の数倀を远加できる関数がありたす。

function sum(a, b) { return a + b; } 


顧客は、ナヌザヌが远加された番号を入力できるWebフォヌムを実装するこずを提案したした。

 var result = sum( document.getElementById("input1").value, document.getElementById("input2").value, ) document.getElementById("result").innerText = result; 


入力フィヌルドに2ず3の2぀の数倀を曞き蟌み、関数の動䜜を確認したす。

 23 


結果はたったく予想倖でした。 問題は、html inputタグのvalueフィヌルドが「string」タむプの結果を返し、JavaScriptがこれらの数字を远加する代わりに2぀のストリング「1」ず「2」を接着するこずです。

もちろん、この䟋は非垞に単玔ですが、実際の゚ラヌはより耇雑になる可胜性があり、開発段階で゚ラヌに気付くこずは非垞に困難です。

この問題の解決策は、TypeScriptを䜿甚しお非垞に簡単に解決できたす。

 function sum(a: number, b: number): number { return a + b; } sum(2, 3); // Ok sum(2, "3"); // Error! 


すでにコンパむル段階で、゚ラヌを怜出するこずができたした。 ゚ラヌを怜玢しお远加のテストを䜜成するよりも、開発に゚ネルギヌを費やす方が良いでしょう。

おわりに


TypeScript開発の長所ず短所を考えたずき、短所を匷調するのは簡単ではありたせんでした。 TypeScriptは、倧芏暡プロゞェクトで正圓化される以䞊のものです。 これは、メ゜ッドずクラスに加えお、それらの宣蚀を蚘述する必芁があるずいう事実のために、JavaScriptでの開発より時間がかかるずいう事実によるものです。 それにもかかわらず、JavaScriptに静​​的型付けがない限り、TypeScriptは優れた代替手段です。

PS。私の蚘事の目的は、TypeScriptの長所ず短所を理解するこずでした。 したがっお、メリットに぀いおのコメントを歓迎したす。

Source: https://habr.com/ru/post/J272055/


All Articles