Apa itu TypeScript? JavaScript yang ditaip dengan kuat

Apa itu TypeScript? TypeScript ditakrifkan

TypeScript adalah variasi bahasa pengaturcaraan JavaScript yang popular yang menambahkan beberapa ciri utama yang penting untuk pengembangan perusahaan. Khususnya, TypeScript sangat ditaip - iaitu, pemboleh ubah dan struktur data lain dapat dinyatakan sebagai jenis tertentu, seperti rentetan atau boolean, oleh pengaturcara, dan TypeScript akan memeriksa kesahan nilainya. Ini tidak mungkin dilakukan dalam JavaScript, yang ditaip secara longgar .

Pengetikan TypeScript yang kuat memungkinkan sejumlah ciri yang membantu menjadikan pembangun lebih cekap, terutama ketika berurusan dengan pangkalan data berskala perusahaan yang besar. TypeScript disusun, bukannya ditafsirkan seperti JavaScript, yang bermaksud kesalahan dapat ditangkap sebelum dilaksanakan; IDE yang melakukan penyusunan tambahan latar belakang dapat melihat kesalahan tersebut semasa proses pengkodan.

Walaupun terdapat perbezaan utama dengan JavaScript, TypeScript masih dapat dijalankan di mana sahaja JavaScript dapat dijalankan. Ini kerana TypeScript menyusun bukan untuk binary yang dapat dilaksanakan, tetapi untuk JavaScript standard. Mari selami untuk mengetahui lebih lanjut.

Jenis Skrip vs JavaScript 

Naskah yg dicetak ialah superset JavaScript. Walaupun mana-mana kod JavaScript yang betul juga kod TypeScript yang benar, TypeScript juga memiliki fitur bahasa yang bukan merupakan bagian dari JavaScript. Ciri paling menonjol yang unik untuk TypeScript — yang memberikan TypeScript namanya — adalah, seperti yang dinyatakan, pengetikan kuat: pemboleh ubah TypeScript dikaitkan dengan jenis, seperti rentetan, angka, atau boolean, yang memberitahu kompiler jenis data apa ia boleh tahan. Selain itu, TypeScript menyokong inferens jenis, dan merangkumi jenis semua jenis, yang bermaksud bahawa pemboleh ubah tidak perlu menetapkan jenisnya secara eksplisit oleh pengaturcara; lebih banyak lagi dalam sekejap. 

TypeScript juga dirancang untuk pengaturcaraan berorientasikan objek - JavaScript, tidak begitu banyak. Konsep seperti pewarisan dan kawalan akses yang tidak intuitif dalam JavaScript mudah dilaksanakan dalam TypeScript. Di samping itu, TypeScript membolehkan anda melaksanakan antara muka, konsep yang sangat tidak bermakna dalam dunia JavaScript.

Yang mengatakan, tidak ada fungsi yang dapat anda kodkan dalam TypeScript yang tidak dapat anda kodkan juga dalam JavaScript. Itu kerana TypeScript tidak disusun dalam pengertian konvensional - caranya, misalnya, C ++ disusun menjadi binari yang dapat dijalankan yang dapat berjalan pada perkakasan yang ditentukan. Sebaliknya, penyusun TypeScript merangkai kod TypeScript ke dalam JavaScript yang setara secara fungsional. Artikel ini dari Sean Maxwell di GitConnected mempunyai beberapa contoh coretan kod TypeScript berorientasi objek dan setara JavaScript mereka. JavaScript yang dihasilkan kemudian dapat dijalankan di mana sahaja kod JavaScript dapat dijalankan, dari penyemak imbas web ke pelayan yang dilengkapi dengan Node.js.

Oleh itu, jika TypeScript, pada akhirnya, adalah cara yang menarik untuk menghasilkan kod JavaScript, mengapa perlu bersusah payah dengannya? Untuk menjawab soalan itu, kita perlu melihat dari mana TypeScript berasal dan untuk apa ia digunakan.

Untuk apa TypeScript digunakan?

TypeScript dikeluarkan sebagai sumber terbuka pada tahun 2012 setelah dikembangkan dalam Microsoft. (Raksasa perisian tetap menjadi pelayan dan pembangun utama projek ini.) Artikel ZDNet ini dari masa lalu memberikan gambaran menarik mengapa ia berlaku: “Ternyata salah satu motivasi besar adalah pengalaman pasukan lain di Microsoft yang berusaha mengembangkan dan mengekalkan produk Microsoft dalam JavaScript. "

Pada waktu itu, Microsoft berusaha meningkatkan Peta Bing sebagai pesaing Peta Google, dan juga menawarkan versi web dari suite Office-dan JavaScript adalah bahasa pengembangan utama untuk tugas-tugas tersebut. Tetapi pada dasarnya para pemaju merasa sukar untuk menulis aplikasi pada skala penawaran unggulan Microsoft menggunakan JavaScript. Oleh itu, mereka mengembangkan TypeScript untuk mempermudah pembuatan aplikasi peringkat perusahaan untuk dijalankan di lingkungan JavaScript. Inilah semangat di sebalik slogan untuk bahasa di laman projek TypeScript rasmi: "JavaScript yang berskala."

Mengapa TypeScript lebih baik untuk jenis pekerjaan ini daripada JavaScript vanilla? Kita boleh berdebat selamanya mengenai kelebihan pengaturcaraan berorientasikan objek, tetapi kenyataannya ialah banyak pembangun perisian yang mengerjakan projek perusahaan besar sudah terbiasa dengannya, dan ini membantu dengan penggunaan semula kod sebagai projek yang berukuran besar. Anda juga tidak boleh mengabaikan sejauh mana perkakas dapat meningkatkan produktiviti pengembang. Seperti yang dinyatakan, kebanyakan IDE perusahaan menyokong penyusunan latar belakang, yang dapat mengesan kesalahan semasa anda bekerja. (Selagi kod anda betul secara sintaksis, kod tersebut masih akan berubah, tetapi JavaScript yang dihasilkan mungkin tidak berfungsi dengan baik; anggap kesalahan ralat adalah setara dengan semakan ejaan.) IDE ini juga dapat membantu anda membuat kod refaktor ketika anda masuk ke dalam projek.

Ringkasnya, TypeScript digunakan ketika anda menginginkan fitur dan alat perusahaan dari bahasa seperti Java, tetapi anda memerlukan kod anda untuk dijalankan dalam lingkungan JavaScript. Secara teori, anda boleh menulis JavaScript standard yang dihasilkan oleh penyusun TypeScript, tetapi anda akan memerlukan lebih lama dan pangkalan data akan menjadi lebih sukar bagi pasukan besar untuk memahami dan membuat debug.

Oh, dan TypeScript mempunyai trik rapi yang lain: Anda boleh menetapkan penyusun untuk menargetkan persekitaran runtime JavaScript, penyemak imbas, atau bahkan versi bahasa. Oleh kerana mana-mana kod JavaScript yang dibentuk dengan baik juga adalah kod TypeScript, Anda dapat, misalnya, mengambil kod yang ditulis ke spesifikasi ECMAScript 2015, yang menyertakan sejumlah fitur sintaksis baru, dan menyusunnya ke dalam kod JavaScript yang sesuai dengan versi lama dari Bahasa.

Pasang TypeScript

Bersedia untuk mula bermain dengan TypeScript? Memasang bahasa itu mudah. Sekiranya anda sudah menggunakan Node.js pada mesin pengembangan anda, anda boleh menggunakan NPM, pengurus pakej Node.js, untuk memasangnya. Tutorial TypeScript rasmi dalam 5 minit akan memandu anda melalui prosesnya.

TypeScript juga dapat dipasang sebagai plug-in untuk IDE pilihan anda, yang akan memberi anda kelebihan perkakas yang kami bicarakan di atas dan juga mengurus proses penyusunan TypeScript ke JavaScript. Oleh kerana TypeScript dikembangkan oleh Microsoft, tidak mengejutkan bahawa terdapat pemalam berkualiti tinggi yang tersedia untuk Visual Studio dan Visual Studio Code. Tetapi sebagai projek sumber terbuka, TypeScript telah disesuaikan di mana-mana, mulai dari IDE sumber terbuka seperti Eclipse hingga editor teks terhormat seperti Vim. Dan keseluruhan projek boleh dilayari dan dimuat turun dari GitHub.

Sintaks Taip

Setelah TypeScript dipasang, anda sudah bersedia untuk memulakan penjelajahan, dan ini bermaksud memahami asas-asas sintaks TypeScript. Oleh kerana JavaScript adalah asas TypeScript, anda perlu membiasakan diri dengan JavaScript sebelum anda memulakannya. Tidak syak lagi tempat menarik utama anda adalah ciri khas TypeScript yang menjadikan bahasa itu unik; kita akan menyentuh titik tinggi di sini.

Jenis naskhah

Jelas sekali ciri sintaksis yang paling penting dalam TypeScript adalah sistem jenis. Bahasa itu menyokong sebilangan jenis asas:

  • Boolean: Nilai benar / salah sederhana.
  • Nombor: Dalam TypeScript, seperti dalam JavaScript, semua nombor adalah nilai titik terapung — tidak ada bilangan bulat yang terpisah. TypeScript menyokong literal perpuluhan, heksadesimal, binari, dan oktal.
  • Rentetan: Rentetan data teks. Anda boleh menggunakan tanda petik tunggal atau ganda untuk mengelilingi rentetan semasa menetapkan data. Anda juga boleh menggunakan backticks ( `) untuk mengelilingi rentetan dengan beberapa baris, dan anda boleh memasukkan ungkapan dalam rentetan dengan sintaks ${ expr }.
  • Susun atur dan tupel: Jenis ini membolehkan anda menyimpan beberapa nilai dalam urutan yang ditentukan. Dalam sebuah array, nilai masing-masing adalah jenis data yang sama, sedangkan dalam tupel mereka boleh menjadi heterogen. forEach()Kaedah TypeScript digunakan untuk memanggil fungsi pada setiap elemen dalam array.
  • Enum: Seperti jenis nama yang sama di C #, enum TypeScript membolehkan anda menetapkan nama yang dapat dibaca manusia ke urutan nilai angka.
  • Mana-mana: Ini adalah jenis pemboleh ubah di mana anda tidak semestinya tahu nilai apa yang akan dimilikinya terlebih dahulu — mungkin mengambil nilai dari input pengguna atau perpustakaan pihak ketiga, misalnya.
  • Objek: Ini adalah jenis yang mewakili apa sahaja yang bukan jenis primitif; penting bagi sifat TypeScript yang berorientasikan objek.

Terdapat dua cara berbeza untuk menetapkan jenis secara eksplisit kepada pemboleh ubah. Yang pertama adalah sintaks pendakap sudut:

biarkan beberapa Nilai: mana-mana;

let strLength: number = (someValue) .length;

Dan yang kedua adalah assintaks:

let someValue: any = "ini adalah rentetan";

let strLength: number = (someValue as string) .length;

Coretan kod ini, yang diambil dari dokumentasi TypeScript, sama fungsinya. Kedua-duanya mendefinisikan someValuesebagai pemboleh ubah jenis anydan menetapkan "this is a string"sebagai nilainya, kemudian menentukan strLengthsebagai nombor dan menetapkan sebagai nilainya panjang isi someValue.

Jenis TypeScript juga boleh ditetapkan dengan inferens. Maksudnya, jika anda menetapkan nilai x hingga 7 tanpa menentukan jenis x apa, penyusun akan menganggap x harus menjadi nombor. Dalam keadaan tertentu pengkompil dapat menyimpulkan anyjenis, walaupun anda dapat menggunakan bendera kompilasi untuk memastikannya tidak.

Sistem jenis TypeScript cukup kaya dan melangkaui ruang lingkup artikel ini. Terdapat sebilangan besar jenis maju dan utiliti; ini termasuk jenis penyatuan, yang membolehkan anda menetapkan bahawa pemboleh ubah akan menjadi salah satu daripada beberapa jenis yang ditentukan, dan jenis yang dipetakan, yang merupakan jenis yang boleh anda buat berdasarkan jenis yang ada, di mana anda mengubah setiap harta dalam jenis yang ada dengan yang sama cara. Sebagai contoh, anda boleh membuat jenis persatuan untuk pemboleh ubah yang anda mahu menjadi nombor atau boolean, tetapi bukan rentetan atau yang lain; atau anda boleh membuat jenis yang dipetakan yang menetapkan semua elemen dalam array untuk dibaca sahaja.

Antara muka TypeScript

Seperti kebanyakan bahasa berorientasikan objek, TypeScript mempunyai antara muka, yang membolehkan pengguna menentukan jenis mereka sendiri. Antaramuka menetapkan sifat yang dimiliki objek, bersama dengan jenis yang berkaitan dengan sifat tersebut. Antaramuka TypeScript boleh mempunyai sifat pilihan. Untuk maklumat lanjut mengenai sintaks, lihat dokumentasi TypeScript.  

Generik taip

TypeScript juga berkongsi konsep generik dengan bahasa berorientasikan objek seperti Java dan C #. (Kemudahan setara dalam C ++ disebut templat.) Dalam TypeScript, komponen generik dapat berfungsi pada berbagai jenis, bukan hanya satu, bergantung pada di mana dalam kod tersebut komponen tersebut disebut. Berikut adalah contoh yang sangat mudah dari dokumentasi TypeScript. Pertama, pertimbangkan fungsi ini, yang mengambil argumen dan kemudian segera mengembalikannya:

identiti fungsi (arg: any): mana-mana {

    kembali arg;

}

Kerana fungsinya ditentukan dengan anyjenisnya, ia akan menerima argumen dari jenis apa pun yang anda pilih untuk melemparkannya. Walau bagaimanapun, apa yang dikembalikan adalah anyjenisnya. Berikut adalah versi fungsi menggunakan generik:

identiti fungsi (arg: T): T {

    kembali arg;

}

Kod ini merangkumi pemboleh ubah jenisT , yang menangkap jenis argumen masuk dan menyimpannya untuk digunakan kemudian.

Terdapat lebih banyak lagi untuk generik, yang merupakan kunci untuk memungkinkan penggunaan semula kod dalam projek perusahaan besar. Lihat dokumentasi TypeScript untuk perinciannya.

Kelas TypeScript 

Dalam pengaturcaraan berorientasikan objek, kelas mewarisi fungsi, dan seterusnya berfungsi sebagai blok bangunan objek. JavaScript secara tradisional tidak menggunakan kelas, sebaliknya bergantung pada fungsi dan warisan berdasarkan prototaip, tetapi konsep itu ditambahkan ke bahasa sebagai bagian dari versi ECMAScript 2015 standard. Kelas sudah menjadi sebahagian daripada TypeScript, dan sekarang TypeScript menggunakan sintaks yang sama dengan JavaScript. Salah satu kelebihan penyusun TypeScript ialah ia dapat mengubah kod dengan kelas JavaScript menjadi kod JavaScript lama yang sesuai dengan standard sebelum 2015.

Tarikh Jenis Skrip

Terdapat sejumlah kaedah dan objek yang tersedia untuk mendapatkan dan menetapkan tarikh dan waktu di TypeScript, yang kebanyakannya diwarisi dari JavaScript. JavaTPoint mempunyai ikhtisar yang baik tentang cara ini berfungsi.

Tutorial TypeScript 

Bersedia untuk pergi lebih dalam? Ikuti tutorial TypeScript berikut:

  • TypeScript dalam 5 Minit akan memandu anda melalui proses memasang TypeScript jika anda belum melakukannya.
  • Tutorial Visual Studio Code ini menunjukkan bagaimana IDE benar-benar menambah produktiviti pengembangan TypeScript anda.
  • Tutorial Jenis Skrip untuk Pemula: The Missing Guide adalah pengenalan yang sangat teliti yang akan berguna walaupun anda mempunyai pengalaman JavaScript yang agak terhad.

Sekiranya anda ingin belajar bagaimana menggunakan TypeScript dengan React, perpustakaan JavaScript untuk membina UI yang dikembangkan oleh Facebook, lihat Cara menggunakan TypeScript dengan React dan Redux dari Ross Bulat dan bahagian mengenai React dan webpack dalam dokumentasi TypeScript. Selamat belajar!