Bisakah Anda jelaskan apa bahasa TypeScript itu?
Apa yang bisa dilakukan yang tidak bisa dilakukan JavaScript atau perpustakaan yang tersedia, yang akan memberi saya alasan untuk mempertimbangkannya?
javascript
typescript
Mohammed Thabet
sumber
sumber
Jawaban:
Tampilan 1000 kaki ...
TypeScript adalah superset JavaScript yang terutama menyediakan pengetikan statis, kelas, dan antarmuka. Salah satu manfaat besar adalah mengaktifkan IDE untuk menyediakan lingkungan yang lebih kaya untuk menemukan kesalahan umum saat Anda mengetik kode .
Untuk mendapatkan ide tentang apa yang saya maksud, tonton video pengantar Microsoft tentang bahasa tersebut.
Untuk proyek JavaScript besar, mengadopsi TypeScript mungkin menghasilkan perangkat lunak yang lebih kuat, sementara masih dapat digunakan di mana aplikasi JavaScript biasa dijalankan.
Ini adalah open source, tetapi Anda hanya mendapatkan Intellisense yang pintar saat Anda mengetik jika Anda menggunakan IDE yang didukung. Awalnya, ini hanya Microsoft Visual Studio (juga dicatat dalam posting blog dari Miguel de Icaza ). Saat ini, IDE lain juga menawarkan dukungan TypeScript .
Apakah ada teknologi lain yang seperti itu?
Ada CoffeeScript , tetapi itu benar-benar melayani tujuan yang berbeda. IMHO, CoffeeScript memberikan keterbacaan untuk manusia, tetapi TypeScript juga menyediakan keterbacaan yang mendalam untuk alat melalui pengetikan statis opsional (lihat posting blog baru-baru ini untuk kritik yang lebih sedikit). Ada juga Dart tetapi itu penuh pada penggantian untuk JavaScript (meskipun dapat menghasilkan kode JavaScript )
Contoh
Sebagai contoh, inilah beberapa TypeScript (Anda dapat bermain dengan ini di TypeScript Playground )
Dan inilah JavaScript yang akan dihasilkannya
Perhatikan bagaimana TypeScript mendefinisikan tipe variabel anggota dan parameter metode kelas. Ini dihapus ketika menerjemahkan ke JavaScript, tetapi digunakan oleh IDE dan kompiler untuk menemukan kesalahan, seperti meneruskan tipe numerik ke konstruktor.
Itu juga mampu menyimpulkan jenis yang tidak secara eksplisit dinyatakan, misalnya, itu akan menentukan
greet()
metode mengembalikan string.Debugging TypeScript
Banyak browser dan IDE menawarkan dukungan debug langsung melalui sourcemaps. Lihat pertanyaan Stack Overflow ini untuk lebih jelasnya: Mendebug kode TypeScript dengan Visual Studio
Ingin tahu lebih banyak?
Saya awalnya menulis jawaban ini ketika TypeScript masih hot-off-the-presses. Lihatlah jawaban Lodewijk untuk pertanyaan ini untuk detail lebih lanjut.
sumber
Hubungan TypeScript dengan JavaScript
JavaScript adalah bahasa pemrograman yang dikembangkan oleh Komite Teknis EMCA 39 , yang merupakan sekelompok orang yang terdiri dari berbagai pemangku kepentingan. TC39 adalah komite yang diselenggarakan oleh ECMA : organisasi standar internal. JavaScript memiliki banyak implementasi berbeda oleh banyak vendor yang berbeda (misalnya Google, Microsoft, Oracle, dll.). Tujuan JavaScript adalah menjadi lingua franca web.
TypeScript adalah superset dari bahasa JavaScript yang memiliki kompilator open-source tunggal dan dikembangkan terutama oleh satu vendor: Microsoft. Tujuan dari TypeScript adalah untuk membantu menangkap kesalahan sejak dini melalui sistem tipe dan untuk membuat pengembangan JavaScript lebih efisien.
Pada dasarnya TypeScript mencapai tujuannya dalam tiga cara:
Dukungan untuk fitur JavaScript modern - Bahasa JavaScript (bukan runtime) distandarisasi melalui standar ECMAScript . Tidak semua browser dan runtime JavaScript mendukung semua fitur semua standar ECMAScript (lihat ikhtisar ini ). TypeScript memungkinkan untuk menggunakan banyak fitur ECMAScript terbaru dan menerjemahkannya ke target ECMAScript lama yang Anda pilih (lihat daftar target kompilasi di bawah
--target
opsi kompiler). Ini berarti bahwa Anda dapat dengan aman menggunakan fitur-fitur baru, seperti modul, fungsi lambda, kelas, operator penyebaran dan perusakan, sambil tetap kompatibel dengan browser yang lama dan runtime JavaScript.Sistem tipe lanjutan - Jenis dukungan bukan bagian dari standar ECMAScript dan kemungkinan tidak akan pernah disebabkan oleh sifat yang ditafsirkan alih-alih sifat kompilasi dari JavaScript. Sistem tipe dari TypeScript sangat kaya dan meliputi: antarmuka, enum, tipe hibrida, generik, tipe gabungan / persimpangan, pengubah akses, dan banyak lagi. Situs web resmi TypeScript memberikan gambaran umum tentang fitur-fitur ini. Sistem jenis huruf sama dengan sebagian besar bahasa yang diketik lainnya dan dalam beberapa kasus bisa dibilang lebih kuat.
Dukungan perkakas pengembang - Kompiler TypeScript dapat dijalankan sebagai proses latar belakang untuk mendukung kompilasi tambahan dan integrasi IDE sehingga Anda dapat lebih mudah menavigasi, mengidentifikasi masalah, memeriksa kemungkinan dan memperbaiki basis kode Anda.
Hubungan TypeScript dengan bahasa penargetan JavaScript lainnya
TypeScript memiliki filosofi unik dibandingkan dengan bahasa lain yang dikompilasi dengan JavaScript. Kode JavaScript adalah kode TypeScript yang valid; TypeScript adalah superset dari JavaScript. Anda hampir dapat mengubah nama
.js
file Anda menjadi.ts
file dan mulai menggunakan TypeScript (lihat "interoperabilitas JavaScript" di bawah). File TypeScript dikompilasi untuk JavaScript yang dapat dibaca, sehingga migrasi kembali dimungkinkan dan memahami TypeScript yang dikompilasi sama sekali tidak sulit. TypeScript dibangun di atas keberhasilan JavaScript sambil meningkatkan kelemahannya.Di satu sisi, Anda memiliki alat bukti masa depan yang mengambil standar ECMAScript modern dan mengompilasinya ke versi JavaScript yang lebih lama dengan Babel menjadi yang paling populer. Di sisi lain, Anda memiliki bahasa yang mungkin sangat berbeda dari JavaScript yang menargetkan JavaScript, seperti CoffeeScript, Clojure, Dart, Elm, Haxe, Scala.js, dan seluruh host lainnya (lihat daftar ini). Bahasa-bahasa ini, meskipun mereka mungkin lebih baik daripada di mana masa depan JavaScript akan pernah memimpin, memiliki risiko lebih besar karena tidak menemukan adopsi yang cukup untuk masa depan mereka untuk dijamin. Anda mungkin juga akan kesulitan menemukan pengembang yang berpengalaman untuk beberapa bahasa ini, meskipun yang Anda temukan seringkali lebih antusias. Interop dengan JavaScript juga bisa sedikit lebih terlibat, karena mereka lebih jauh dihapus dari apa sebenarnya JavaScript itu.
TypeScript berada di antara kedua ekstrem ini, sehingga menyeimbangkan risikonya. TypeScript bukanlah pilihan yang berisiko menurut standar apa pun. Dibutuhkan sedikit usaha untuk membiasakan diri jika Anda terbiasa dengan JavaScript, karena itu bukan bahasa yang sama sekali berbeda, memiliki dukungan interoperabilitas JavaScript yang sangat baik dan telah melihat banyak adopsi baru-baru ini.
Secara opsional mengetik dan mengetik inferensi
JavaScript diketik secara dinamis. Ini berarti JavaScript tidak tahu tipe variabel apa itu sampai ia benar-benar dipakai saat dijalankan. Ini juga berarti bahwa mungkin sudah terlambat. TypeScript menambahkan dukungan tipe ke JavaScript. Bug yang disebabkan oleh asumsi salah dari beberapa variabel dari tipe tertentu dapat sepenuhnya dihapus jika Anda memainkan kartu Anda dengan benar (seberapa ketat Anda mengetik kode Anda atau jika Anda mengetikkan kode sama sekali terserah Anda).
TypeScript membuat mengetik sedikit lebih mudah dan banyak kurang eksplisit dengan penggunaan inferensi tipe. Sebagai contoh:
var x = "hello"
dalam TypeScript sama denganvar x : string = "hello"
. Jenis ini hanya disimpulkan dari penggunaannya. Meskipun Anda tidak secara eksplisit mengetik jenisnya, mereka masih ada untuk menyelamatkan Anda dari melakukan sesuatu yang jika tidak akan menghasilkan kesalahan run-time.TypeScript secara opsional diketik secara default. Sebagai contoh
function divideByTwo(x) { return x / 2 }
adalah fungsi yang valid dalam TypeScript yang dapat dipanggil dengan segala jenis parameter, meskipun memanggilnya dengan string jelas akan menghasilkan runtime kesalahan . Sama seperti Anda terbiasa dengan JavaScript. Ini berfungsi, karena ketika tidak ada tipe yang secara eksplisit ditetapkan dan tipe tidak dapat disimpulkan, seperti pada contoh divideByTwo, TypeScript akan secara implisit menetapkan tipe tersebutany
. Ini berarti tanda tangan jenis fungsi divideByTwo secara otomatis menjadifunction divideByTwo(x : any) : any
. Ada bendera compiler untuk melarang perilaku ini:--noImplicitAny
. Mengaktifkan tanda ini memberi Anda tingkat keamanan yang lebih tinggi, tetapi juga berarti Anda harus melakukan lebih banyak pengetikan.Jenis memiliki biaya yang terkait dengannya. Pertama-tama, ada kurva belajar, dan yang kedua, tentu saja, akan dikenakan biaya sedikit lebih banyak waktu untuk membuat basis kode menggunakan pengetikan ketat yang tepat juga. Dalam pengalaman saya, biaya ini benar-benar sepadan dengan basis kode serius apa pun yang Anda bagikan dengan orang lain. Studi Skala Besar Bahasa Pemrograman dan Kualitas Kode di Github menunjukkan bahwa "bahasa yang diketik secara statis, pada umumnya lebih sedikit cacat dibandingkan jenis dinamis, dan bahwa pengetikan yang kuat lebih baik daripada pengetikan yang lemah dalam hal yang sama".
Sangat menarik untuk dicatat bahwa makalah yang sama ini menemukan bahwa TypeScript lebih rentan kesalahan daripada JavaScript:
Dukungan IDE yang ditingkatkan
Pengalaman pengembangan dengan TypeScript merupakan peningkatan besar dibandingkan JavaScript. IDE diinformasikan secara real-time oleh kompiler TypeScript pada informasi tipe kaya. Ini memberi beberapa keuntungan besar. Misalnya, dengan TypeScript, Anda dapat dengan aman melakukan refactor seperti mengganti nama di seluruh basis kode Anda. Melalui penyelesaian kode, Anda bisa mendapatkan bantuan sebaris pada fungsi apa pun yang mungkin ditawarkan oleh perpustakaan. Tidak perlu lagi mengingatnya atau mencari referensi online. Kesalahan kompilasi dilaporkan secara langsung dalam IDE dengan garis berlekuk-lekuk merah saat Anda sibuk melakukan pengkodean. Secara keseluruhan, ini memungkinkan untuk mendapatkan produktivitas yang signifikan dibandingkan dengan bekerja dengan JavaScript. Seseorang dapat menghabiskan lebih banyak waktu coding dan sedikit waktu debugging.
Ada berbagai macam IDE yang memiliki dukungan yang sangat baik untuk TypeScript, seperti Visual Studio Code, WebStorm, Atom dan Sublime.
Pemeriksaan nol ketat
Kesalahan runtime formulir
cannot read property 'x' of undefined
atauundefined is not a function
sangat umum disebabkan oleh bug dalam kode JavaScript. Di luar kotak TypeScript sudah mengurangi kemungkinan kesalahan jenis ini terjadi, karena seseorang tidak dapat menggunakan variabel yang tidak dikenal ke kompiler TypeScript (dengan pengecualian properti dariany
variabel yang diketik). Namun masih dimungkinkan untuk secara keliru memanfaatkan variabel yang diatur keundefined
. Namun, dengan versi 2.0 dari TypeScript Anda dapat menghilangkan semua jenis kesalahan ini bersama-sama melalui penggunaan tipe yang tidak dapat dibatalkan. Ini berfungsi sebagai berikut:Dengan pemeriksaan nol yang ketat diaktifkan (
--strictNullChecks
flag kompiler), compiler TypeScript tidak akan diizinkanundefined
untuk ditugaskan ke variabel kecuali Anda secara eksplisit menyatakannya sebagai tipe nullable. Misalnya,let x : number = undefined
akan menghasilkan kesalahan kompilasi. Ini sangat cocok dengan teori jenis karenaundefined
bukan angka. Satu dapat menentukanx
untuk menjadi tipe jumlahnumber
danundefined
untuk memperbaiki ini:let x : number | undefined = undefined
.Setelah suatu jenis diketahui dapat dibatalkan, artinya itu adalah tipe yang juga bisa bernilai
null
atauundefined
, kompiler TypeScript dapat menentukan melalui analisis tipe berbasis aliran kontrol apakah kode Anda dapat menggunakan variabel dengan aman atau tidak. Dengan kata lain ketika Anda memeriksa variabelundefined
melalui contohnyaif
pernyataan, kompiler TypeScript akan menyimpulkan bahwa tipe cabang dari aliran kontrol kode Anda tidak lagi dapat dibatalkan dan karenanya dapat digunakan dengan aman. Ini adalah contoh sederhana:Selama pembangunan, co-designer konferensi 2016 dari TypeScript Anders Hejlsberg memberikan penjelasan rinci dan demonstrasi fitur ini: video (dari 44:30 hingga 56:30).
Kompilasi
Untuk menggunakan TypeScript Anda membutuhkan proses build untuk mengkompilasi ke kode JavaScript. Proses pembuatan umumnya hanya memakan waktu beberapa detik, tergantung tentu saja pada ukuran proyek Anda. Compiler TypeScript mendukung kompilasi tambahan (
--watch
flag kompiler) sehingga semua perubahan selanjutnya dapat dikompilasi dengan kecepatan yang lebih besar.Compiler TypeScript dapat sebaris informasi peta sumber dalam file .js yang dihasilkan atau membuat file .map terpisah. Informasi peta sumber dapat digunakan oleh utilitas debugging seperti Chrome DevTools dan IDE lain untuk menghubungkan garis-garis dalam JavaScript dengan yang menghasilkan mereka dalam TypeScript. Ini memungkinkan Anda untuk mengatur breakpoint dan memeriksa variabel saat runtime langsung pada kode TypeScript Anda. Sumber informasi peta bekerja dengan baik, itu ada jauh sebelum TypeScript, tetapi debugging TypeScript umumnya tidak sehebat ketika menggunakan JavaScript secara langsung. Ambil
this
kata kunci misalnya. Karena perubahan semantikthis
kata kunci di sekitar penutupan sejak ES2015,this
sebenarnya mungkin ada selama runtime sebagai variabel yang disebut_this
(lihat jawaban ini). Ini mungkin membingungkan Anda selama debugging tetapi umumnya tidak menjadi masalah jika Anda mengetahuinya atau memeriksa kode JavaScript. Perlu dicatat bahwa Babel menderita masalah yang sama persis.Ada beberapa trik lain yang dapat dilakukan oleh kompiler TypeScript, seperti menghasilkan kode intersepsi berdasarkan dekorator , menghasilkan kode pemuatan modul untuk sistem modul yang berbeda dan mem-parsing JSX . Namun, Anda mungkin akan memerlukan alat bangun selain kompiler Scripteks. Misalnya, jika Anda ingin mengompres kode Anda, Anda harus menambahkan alat lain ke proses build Anda untuk melakukannya.
Ada plugin kompilasi TypeScript yang tersedia untuk Webpack , Gulp , Grunt dan cukup banyak alat build JavaScript lainnya di luar sana. Dokumentasi TypeScript memiliki bagian tentang mengintegrasikan dengan alat membangun yang mencakup semuanya. Sebuah linter juga tersedia jika Anda ingin lebih banyak membangun waktu pemeriksaan. Ada juga sejumlah besar proyek seed di luar sana yang akan membantu Anda memulai dengan TypeScript dikombinasikan dengan sekelompok teknologi lain seperti Angular 2, React, Ember, SystemJS, Webpack, Gulp, dll.
Interoperabilitas JavaScript
Karena TypeScript sangat erat kaitannya dengan JavaScript, ia memiliki kemampuan interoperabilitas yang hebat, tetapi beberapa pekerjaan tambahan diperlukan untuk bekerja dengan pustaka JavaScript di TypeScript. Definisi TypeScript diperlukan agar kompiler TypeScript memahami bahwa pemanggilan fungsi menyukai
_.groupBy
atauangular.copy
atau$.fadeOut
bahkan tidak pernyataan ilegal. Definisi untuk fungsi-fungsi ini ditempatkan dalam.d.ts
file.Bentuk paling sederhana yang bisa diambil definisi adalah mengizinkan pengidentifikasi digunakan dengan cara apa pun. Misalnya, ketika menggunakan Lodash , file definisi baris tunggal
declare var _ : any
akan memungkinkan Anda untuk memanggil fungsi apa pun yang Anda inginkan_
, tetapi kemudian, tentu saja, Anda juga masih dapat membuat kesalahan:_.foobar()
akan menjadi panggilan TypeScript yang legal, tetapi tentu saja , panggilan ilegal saat run-time. Jika Anda ingin dukungan jenis yang tepat dan penyelesaian kode, file definisi Anda harus lebih tepat (lihat contoh lodash untuk contoh).Modul NPM yang datang pra-paket dengan definisi tipenya sendiri secara otomatis dipahami oleh kompiler TypeScript (lihat dokumentasi ). Untuk hampir semua perpustakaan JavaScript semi-populer lainnya yang tidak menyertakan definisi sendiri, seseorang di luar sana telah membuat definisi tipe tersedia melalui modul npm lainnya. Modul-modul ini diawali dengan "@ types /" dan berasal dari repositori Github yang disebut DefinitelyTyped .
Ada satu peringatan: definisi jenis harus cocok dengan versi perpustakaan yang Anda gunakan saat run-time. Jika tidak, TypeScript mungkin melarang Anda memanggil fungsi atau mendereferensi variabel yang ada atau memungkinkan Anda memanggil fungsi atau mendereferensi variabel yang tidak ada, hanya karena tipe tidak cocok dengan run-time pada waktu kompilasi. . Jadi pastikan Anda memuat versi yang tepat dari definisi tipe untuk versi yang tepat dari perpustakaan yang Anda gunakan.
Sejujurnya, ada sedikit kerumitan untuk ini dan itu mungkin menjadi salah satu alasan Anda tidak memilih TypeScript, tetapi pergi untuk sesuatu seperti Babel yang tidak menderita karena harus mendapatkan definisi tipe sama sekali. Di sisi lain, jika Anda tahu apa yang Anda lakukan, Anda dapat dengan mudah mengatasi segala jenis masalah yang disebabkan oleh file definisi yang salah atau hilang.
Konversi dari JavaScript ke TypeScript
Setiap
.js
file dapat diubah namanya menjadi sebuah.ts
file yang dan berlari melalui compiler naskah untuk mendapatkan sintaksis kode JavaScript yang sama sebagai output (jika itu sintaksis benar di tempat pertama). Bahkan ketika kompiler TypeScript mendapat kesalahan kompilasi masih akan menghasilkan.js
file. Ia bahkan dapat menerima.js
file sebagai input dengan--allowJs
flag. Ini memungkinkan Anda untuk memulai dengan TypeScript segera. Sayangnya, kesalahan kompilasi cenderung terjadi di awal. Orang memang perlu mengingat bahwa ini bukan kesalahan penghentian pertunjukan seperti Anda mungkin terbiasa dengan kompiler lain.Kesalahan kompilasi yang didapat seseorang di awal ketika mengonversi proyek JavaScript ke proyek TypeScript tidak terhindarkan oleh sifat TypeScript. TypeScript memeriksa semua kode untuk validitas dan karenanya perlu mengetahui tentang semua fungsi dan variabel yang digunakan. Jadi jenis definisi harus ada untuk mereka semua kalau tidak kesalahan kompilasi pasti akan terjadi. Seperti disebutkan dalam bab di atas, untuk hampir semua kerangka kerja JavaScript ada
.d.ts
file yang dapat dengan mudah diperoleh dengan instalasi paket DefinitelyTyped. Namun, itu mungkin karena Anda telah menggunakan beberapa pustaka yang tidak jelas yang tidak tersedia definisi TypeScript atau Anda telah mengisi beberapa primitif JavaScript. Dalam hal ini, Anda harus memberikan definisi tipe untuk bit-bit ini agar kesalahan kompilasi hilang. Cukup buat.d.ts
file dan masukkan ke dalamfiles
array tsconfig.json , sehingga selalu dipertimbangkan oleh kompiler TypeScript. Di dalamnya mendeklarasikan bit-bit yang tidak diketahui TypeScript sebagai tipeany
. Setelah Anda menghilangkan semua kesalahan, Anda dapat secara bertahap memperkenalkan pengetikan ke bagian-bagian tersebut sesuai dengan kebutuhan Anda.Beberapa pekerjaan pada (re) mengkonfigurasi pipeline build Anda juga akan diperlukan untuk memasukkan TypeScript ke pipeline build. Seperti disebutkan dalam bab tentang kompilasi, ada banyak sumber daya yang bagus di luar sana dan saya mendorong Anda untuk mencari proyek benih yang menggunakan kombinasi alat yang ingin Anda gunakan.
Rintangan terbesar adalah kurva belajar. Saya mendorong Anda untuk bermain-main dengan proyek kecil pada awalnya. Lihat cara kerjanya, bagaimana ia membangun, file mana yang digunakannya, bagaimana itu dikonfigurasikan, bagaimana fungsinya dalam IDE Anda, bagaimana itu terstruktur, alat mana yang digunakannya, dll. Mengubah basis kode JavaScript besar ke TypeScript bisa dilakukan ketika Anda tahu apa yang kamu lakukan. Baca blog ini misalnya tentang mengonversi 600k baris menjadi naskah dalam 72 jam ). Pastikan Anda memiliki pemahaman bahasa yang baik sebelum melakukan lompatan.
Adopsi
TypeScript adalah open-source (Apache 2 berlisensi, lihat GitHub ) dan didukung oleh Microsoft. Anders Hejlsberg , arsitek utama C # adalah ujung tombak proyek. Ini proyek yang sangat aktif; tim TypeScript telah merilis banyak fitur baru dalam beberapa tahun terakhir dan banyak fitur hebat masih direncanakan untuk datang (lihat peta jalan ).
Beberapa fakta tentang adopsi dan popularitas:
sumber
npm
(atauyarn
)install @types/foo
. Bisakah Anda memperbarui jawaban Anda?TypeScript melakukan sesuatu yang mirip dengan yang dilakukan CSS atau kurang. Mereka adalah set super itu, yang berarti bahwa setiap kode JS yang Anda tulis adalah kode TypeScript yang valid. Plus, Anda dapat menggunakan barang lain yang ditambahkan ke bahasa, dan kode yang ditranskripsikan akan menjadi js yang valid. Anda bahkan dapat mengatur versi JS yang Anda inginkan kode yang dihasilkan.
Saat ini TypeScript adalah set super ES2015, jadi mungkin merupakan pilihan yang baik untuk mulai mempelajari fitur js baru dan mengubah ke standar yang dibutuhkan untuk proyek Anda.
sumber
" TypeScript Fundamentals " - sebuah kursus video Pluralsight oleh Dan Wahlin dan John Papa benar-benar bagus, saat ini (25 Maret 2016) diperbarui untuk mencerminkan TypeScript 1.8, pengantar TypeScript.
Bagi saya fitur yang sangat bagus, di samping kemungkinan bagus untuk intellisense, adalah kelas , antarmuka , modul , kemudahan menerapkan AMD, dan kemungkinan untuk menggunakan debugger Visual Studio Typescript ketika dipanggil dengan IE.
Untuk meringkas : Jika digunakan sebagaimana dimaksud, Typcript dapat membuat pemrograman JavaScript lebih dapat diandalkan, dan lebih mudah. Ini dapat meningkatkan produktivitas programmer JavaScript secara signifikan di atas SDLC penuh.
sumber
Ecma script 5 (ES5) yang didukung dan dikompilasi oleh semua browser. ES6 / ES2015 dan ES / 2016 datang tahun ini dengan banyak perubahan sehingga untuk memunculkan perubahan ini ada sesuatu di antaranya yang harus berhati-hati tentang TypeScript.
• TypeScript adalah Jenis -> Berarti kita harus mendefinisikan tipe data dari setiap properti dan metode. Jika Anda tahu C # maka Scriptese mudah dimengerti.
• Keuntungan besar dari TypeScript adalah kita mengidentifikasi isu-isu terkait tipe awal sebelum pergi ke produksi. Ini memungkinkan unit test gagal jika ada jenis ketidakcocokan.
sumber