Apa Ketangkasan dan mengapa saya menggunakannya di tempat JavaScript?

Bisa anda jelaskan apa Ketangkasan bahasa?

Apa yang bisa ia lakukan itu JavaScript atau pustaka yang tersedia tidak dapat melakukan, yang akan memberi saya alasan untuk mempertimbangkan hal itu?

Mengomentari pertanyaan (3)
Larutan

saya awalnya menulis jawaban ini ketika Naskah itu masih hot-off-the-menekan. Lima tahun kemudian, ini adalah aplikasi yang OK gambaran, tapi lihat di Lodewijk's jawaban di bawah untuk lebih mendalam

1000ft melihat...

[Naskah][1] adalah superset dari JavaScript yang terutama menyediakan opsional statis mengetik, kelas dan interface. Salah satu manfaat besar adalah untuk mengaktifkan Ide untuk memberikan lingkungan yang kaya untuk bercak kesalahan umum *saat anda mengetik kode*.

Untuk mendapatkan ide dari apa yang saya maksud, menonton Microsoft's video pengantar pada bahasa.

Untuk proyek JavaScript, mengadopsi Ketangkasan mungkin menghasilkan lebih banyak perangkat lunak yang kuat, sementara masih deployable mana biasa JavaScript aplikasi akan dijalankan.

Ini adalah open source, tapi anda hanya mendapatkan pintar Intellisense saat anda mengetik jika anda menggunakan IDE didukung. Awalnya, ini hanya Microsoft's Visual Studio (juga dicatat dalam posting blog dari Miguel de Icaza). Hari ini, lainnya IDEs menawarkan Naskah dukungan juga.

ada teknologi lain yang seperti itu?

Ada's [CoffeeScript][5], tapi itu benar-benar melayani tujuan yang berbeda. IMHO, CoffeeScript menyediakan dibaca bagi manusia, tetapi Ketangkasan juga menyediakan mendalam untuk dibaca *alat-alat* melalui opsional statis mengetik (lihat ini [posting blog terbaru][6] untuk lebih sedikit kritik). Ada's juga [Panah][7] tapi itu's penuh pada penggantian untuk JavaScript (meskipun itu [dapat menghasilkan kode JavaScript][8])

Contoh

Sebagai contoh, di sini's beberapa Naskah (anda dapat bermain dengan di Ketangkasan Bermain anak)

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

Dan berikut's JavaScript ini akan menghasilkan

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

Perhatikan bagaimana Ketangkasan mendefinisikan tipe dari variabel anggota kelas dan metode parameter. Ini akan dihapus ketika menerjemahkan ke JavaScript, tapi digunakan oleh IDE dan compiler untuk melihat kesalahan, seperti lewat tipe numerik untuk konstruktor.

It's juga mampu menyimpulkan jenis yang tidak't menyatakan secara eksplisit, misalnya, itu akan menentukan menyapa() metode mengembalikan sebuah string.

Debugging Ketangkasan

Banyak browser dan IDEs menawarkan langsung debugging dukungan melalui sourcemaps. Melihat ini Stack Overflow pertanyaan untuk rincian lebih lanjut: [Debugging Naskah code dengan Visual Studio][10]

Ingin tahu lebih lanjut?

Saya awalnya menulis jawaban ini ketika Naskah itu masih panas-off-the-menekan. Check out [Lodewijk's jawaban][11] untuk pertanyaan ini untuk beberapa saat ini lebih detail.
Komentar (28)

Ketangkasan's kaitannya dengan JavaScript

Naskah ini diketik superset dari JavaScript yang mengkompilasi polos JavaScript - typescriptlang.org. JavaScript adalah bahasa pemrograman yang dikembangkan oleh EMCA's Panitia Teknis 39, yang merupakan kelompok orang yang terdiri dari berbagai pemangku kepentingan. TC39 adalah komite yang diselenggarakan oleh ECMA: internal organisasi standar. JavaScript memiliki banyak implementasi yang berbeda oleh berbagai vendor yang berbeda (misalnya, Google, Microsoft, Oracle, dll.). Tujuan dari JavaScript adalah untuk menjadi lingua franca web. Ketangkasan adalah superset dari bahasa JavaScript yang memiliki single open-source compiler dan dikembangkan terutama oleh satu vendor: Microsoft. Tujuan dari Naskah ini adalah untuk membantu menangkap kesalahan awal melalui sebuah jenis sistem dan untuk membuat JavaScript pembangunan lebih efisien. Pada dasarnya Ketangkasan mencapai tujuannya dalam tiga cara:

  1. Dukungan untuk JavaScript modern fitur - bahasa JavaScript (tidak runtime) adalah standar melalui ECMAScript standar. Tidak semua browser dan JavaScript runtime mendukung semua fitur dari semua ECMAScript standar (lihat ini gambaran). Naskah memungkinkan untuk menggunakan banyak terbaru ECMAScript fitur dan menerjemahkannya ke lebih tua ECMAScript target yang anda pilih (lihat daftar kompilasi target di bawah --target opsi kompiler). Ini berarti bahwa anda dapat dengan aman menggunakan fitur-fitur baru, seperti modul, lambda fungsi, kelas, penyebaran operator dan destructuring, namun tetap kompatibel dengan browser lama dan JavaScript runtime.
  2. Lanjutan jenis sistem - jenis dukungan bukan bagian dari ECMAScript standar dan mungkin tidak akan pernah karena ditafsirkan alam bukan disusun alam JavaScript. Jenis sistem Ketangkasan ini sangat kaya dan meliputi: interface, enums, jenis hybrid, obat generik, union/persimpangan jenis, access modifier dan banyak lagi. The situs resmi Naskah ini memberikan gambaran dari fitur ini. Naskah's jenis sistem on-par dengan mengetik bahasa dan dalam beberapa kasus bisa dibilang lebih kuat.
  3. Pengembang perkakas dukungan - Naskah's compiler dapat berjalan sebagai proses latar belakang untuk mendukung investasi tambahan kompilasi dan IDE integrasi sehingga anda dapat lebih mudah menavigasi, mengidentifikasi masalah, memeriksa kemungkinan dan refactor anda codebase.

    Ketangkasan's kaitannya dengan JavaScript lainnya penargetan bahasa

    Ketangkasan memiliki filosofi unik dibandingkan dengan bahasa lain yang mengkompilasi untuk JavaScript. Kode JavaScript ini berlaku Ketangkasan kode; Naskah adalah superset dari JavaScript. Anda hampir dapat mengubah nama anda .js file .ts file dan mulai menggunakan Ketangkasan (lihat "JavaScript interoperabilitas" di bawah). Ketangkasan file dikompilasi untuk dibaca JavaScript, sehingga migrasi kembali adalah mungkin dan pemahaman yang disusun Naskah ini tidak sulit sama sekali. Naskah ini dibangun di atas keberhasilan dari JavaScript sementara meningkatkan pada kelemahan. Di satu sisi, anda memiliki masa depan bukti alat-alat yang modern ECMAScript standar dan compile ke yang lebih tua JavaScript versi dengan Babel menjadi salah satu yang paling populer. Di sisi lain, anda memiliki bahasa yang mungkin benar-benar berbeda dari JavaScript yang target JavaScript, seperti CoffeeScript, Clojure, Dart, Elm, Haxe, Scala.js, dan seluruh host lebih lanjut (lihat ini list). Bahasa-bahasa ini, meskipun mereka mungkin menjadi lebih baik dari mana JavaScript's masa depan mungkin pernah memimpin, menjalankan risiko yang lebih besar tidak menemukan cukup adopsi untuk masa depan mereka harus dijamin. Anda juga mungkin memiliki lebih banyak kesulitan menemukan pengembang yang berpengalaman untuk beberapa bahasa tersebut, meskipun orang-orang yang anda akan menemukan sering bisa lebih antusias. Interop dengan JavaScript juga bisa menjadi sedikit lebih terlibat, karena mereka sangat jauh dari apa yang JavaScript sebenarnya. Naskah duduk di antara dua ekstrem, sehingga menyeimbangkan risiko. Ketangkasan adalah tidak berisiko pilihan dengan standar apapun. Dibutuhkan sedikit usaha untuk mendapatkan digunakan untuk jika anda sudah familiar dengan JavaScript, karena hal ini tidak benar-benar bahasa yang berbeda, memiliki JavaScript mendukung interoperabilitas dan telah melihat banyak adopsi baru-baru ini.

    Opsional statis mengetik dan jenis inferensi

    JavaScript adalah dynamically typed. Ini berarti JavaScript tidak tahu apa jenis variabel ini sampai benar-benar diturunkan pada saat run-time. Ini juga berarti bahwa itu mungkin terlalu terlambat. Naskah menambah jenis dukungan untuk JavaScript. Bug yang disebabkan oleh asumsi yang salah dari beberapa variabel yang jenis tertentu dapat benar-benar diberantas jika anda bermain kartu anda tepat (bagaimana ketat anda mengetik kode anda atau jika anda mengetik kode anda di semua terserah anda). Ketangkasan membuat mengetik lebih mudah dan jauh lebih eksplisit dengan penggunaan jenis inferensi. Misalnya: var x = "hello" dalam Naskah adalah sama seperti var x : string = "hello". Jenis ini hanya disimpulkan dari penggunaannya. Bahkan anda don't secara eksplisit jenis jenis, mereka masih ada di sana untuk menyelamatkan anda dari melakukan sesuatu yang jika tidak akan mengakibatkan galat run-time. Ketangkasan adalah opsional mengetik secara default. Misalnya fungsi divideByTwo(x) { return x / 2 } adalah sah fungsi dalam Naskah yang dapat disebut dengan semua jenis parameter, meskipun panggilan itu dengan sebuah string yang jelas akan mengakibatkan runtime kesalahan. Seperti yang anda digunakan untuk di JavaScript. Ini bekerja, karena bila tidak ada jenis yang secara eksplisit ditetapkan dan jenis tidak bisa disimpulkan, seperti di divideByTwo contoh, Naskah akan secara implisit menetapkan jenis ada. Ini berarti divideByTwo fungsi's jenis tanda tangan secara otomatis menjadi fungsi divideByTwo(x : ada) : ada. Ada compiler bendera untuk melarang perilaku ini: --noImplicitAny. Memungkinkan bendera ini memberikan anda tingkat yang lebih besar dari keselamatan, tetapi juga berarti anda akan harus melakukan lebih banyak mengetik. Jenis memiliki biaya yang terkait dengan mereka. Pertama-tama, ada kurva belajar, dan yang kedua, tentu saja, itu akan dikenakan biaya sedikit lebih banyak waktu untuk mengatur codebase menggunakan yang tepat yang ketat mengetik juga. Dalam pengalaman saya, biaya-biaya yang benar-benar layak pada setiap serius codebase anda berbagi dengan orang lain. Sebuah Studi Skala Besar Bahasa Pemrograman dan Kualitas Kode pada Github menunjukkan bahwa "statis diketik bahasa, secara umum, kurang cacat rawan dari jenis dinamis, dan yang kuat mengetik lebih baik dari yang lemah mengetik dalam hal yang sama". Hal ini menarik untuk dicatat bahwa ini sangat kertas yang sama menemukan bahwa Naskah adalah kurang rawan kesalahan dari JavaScript: Untuk orang-orang dengan koefisien positif kita dapat mengharapkan bahwa bahasa ini terkait dengan, ceteris paribus, jumlah yang lebih besar dari perbaikan cacat. bahasa-bahasa Ini termasuk C, C++, JavaScript, Objective-C, Php, dan Python. Bahasa Clojure, Haskell, Ruby, Scala, dan Naskah, semua memiliki koefisien negatif menyiratkan bahwa bahasa-bahasa ini kurang mungkin dari rata-rata untuk mengakibatkan cacat memperbaiki berkomitmen.

    Enhanced IDE dukungan

    Pengembangan pengalaman dengan Ketangkasan adalah perbaikan besar atas JavaScript. IDE diinformasikan secara real-time oleh Ketangkasan compiler yang kaya jenis informasi. Hal ini memberikan beberapa keuntungan utama. Misalnya, dengan Ketangkasan, anda dapat dengan aman melakukan refactorings seperti mengganti nama di seluruh basis kode. Melalui penyelesaian kode, anda bisa mendapatkan bantuan inline apa fungsi perpustakaan mungkin menawarkan. Tidak perlu lagi untuk mengingat mereka atau melihat mereka di referensi online. Kompilasi kesalahan yang dilaporkan langsung dalam IDE dengan garis berlekuk-lekuk merah saat anda sedang sibuk coding. Semua dalam semua, ini memungkinkan untuk keuntungan yang signifikan dalam produktivitas dibandingkan dengan bekerja dengan JavaScript. Satu dapat menghabiskan lebih banyak waktu coding dan sedikit waktu untuk debugging. Ada berbagai macam Ide yang memiliki dukungan yang sangat baik untuk Ketangkasan, seperti Kode Visual Studio, WebStorm, Atom dan Luhur.

    Ketat null cek

    Kesalahan Runtime dari bentuk tidak bisa membaca properti 'x' undefined atau tidak terdefinisi adalah bukan fungsi sangat sering disebabkan oleh bug dalam kode JavaScript. Keluar dari kotak Naskah sudah mengurangi kemungkinan jenis-jenis kesalahan yang terjadi, karena kita tidak bisa menggunakan variabel yang tidak diketahui Ketangkasan compiler (dengan pengecualian dari sifat apapun yang diketik variabel). Hal ini masih mungkin meskipun keliru memanfaatkan variabel yang diatur ke undefined. Namun, dengan versi 2.0 dari Ketangkasan anda dapat menghilangkan jenis-jenis kesalahan semua bersama-sama melalui penggunaan non-nullable types. Ini bekerja sebagai berikut: Dengan ketat null cek diaktifkan (--strictNullChecks compiler bendera) Naskah tersebut compiler tidak akan membiarkan undefined yang akan ditugaskan untuk variabel kecuali anda secara eksplisit menyatakan hal itu untuk menjadi nullable type. Misalnya, biarkan x : jumlah = tidak terdefinisi akan mengakibatkan kesalahan kompilasi. Ini sangat cocok dengan jenis teori sejak undefined bukan angka. Satu dapat menentukan x menjadi jumlah jenis nomor dan undefined untuk memperbaiki hal ini: biarkan x : jumlah | undefined = undefined. Setelah jenis ini dikenal nullable, berarti itu adalah dari jenis yang juga dapat menjadi nilai null atau undefined, yang Naskah penyusun dapat mengetahui melalui aliran kontrol berdasarkan jenis analisis apakah atau tidak kode anda dapat dengan aman menggunakan variabel atau tidak. Dengan kata lain ketika anda memeriksa sebuah variabel undefined melalui misalnya sebuah jika pernyataan Naskah compiler akan menyimpulkan bahwa jenis di yang cabang dari kode anda's kontrol aliran tidak lagi nullable dan karena itu dapat dengan aman digunakan. Berikut ini adalah contoh sederhana:

let x: number | undefined;
if (x !== undefined) x += 1; // this line will compile, because x is checked.
x += 1; // this line will fail compilation, because x might be undefined.

Selama membangun, 2016 konferensi co-desainer Naskah Anders Hejlsberg memberi penjelasan rinci dan demonstrasi fitur ini: video (dari 44:30 56:30).

Kompilasi

Untuk menggunakan Ketangkasan anda perlu membangun proses untuk mengkompilasi kode JavaScript. Proses membangun umumnya hanya membutuhkan waktu beberapa detik tentu saja tergantung pada ukuran proyek anda. Ketangkasan compiler mendukung incremental kompilasi (--menonton compiler bendera) sehingga semua perubahan selanjutnya dapat disusun pada kecepatan yang lebih besar. Ketangkasan penyusun dapat inline sumber informasi peta yang dihasilkan .js file atau membuat terpisah .file peta. Sumber informasi peta yang dapat digunakan oleh debugging utilitas seperti Chrome DevTools dan lain IDE's untuk berhubungan garis di JavaScript untuk orang-orang yang dihasilkan mereka dalam Naskah. Hal ini memungkinkan anda untuk mengatur breakpoints dan memeriksa variabel selama runtime langsung pada Naskah ketikan kode. Sumber informasi peta bekerja dengan cukup baik, itu sekitar jauh sebelum Ketangkasan, tetapi debugging Naskah ini umumnya tidak begitu besar seperti saat menggunakan JavaScript ini diatas. Mengambil ini kata kunci misalnya. Karena untuk berubah semantik ini kata kunci di sekitar penutupan sejak ES2015, ini mungkin benar-benar ada selama runtime sebagai sebuah variabel yang disebut _this (lihat jawaban ini). Ini mungkin membingungkan anda selama debugging tetapi umumnya tidak masalah jika anda tahu tentang hal ini atau periksa kode JavaScript. Perlu dicatat bahwa Babel akan mengalami hal yang sama persis jenis masalah. Ada beberapa trik lain yang Naskah kompilator dapat dilakukan, seperti menghasilkan mencegat kode berdasarkan dekorator, menghasilkan modul yang memuat kode untuk modul yang berbeda sistem dan parsing BEJ. Namun, anda mungkin akan memerlukan membangun alat selain Ketangkasan compiler. Misalnya, jika anda ingin untuk kompres kode anda anda akan memiliki untuk menambah alat-alat lain untuk membangun proses untuk melakukannya. Ada Naskah kompilasi plugin yang tersedia untuk Webpack, Tegukan, Kasar dan cukup banyak yang lain JavaScript membangun alat di luar sana. Ketangkasan dokumentasi memiliki bagian di mengintegrasikan dengan membangun tools meliputi mereka semua. A linter ini juga tersedia jika anda ingin lebih membangun waktu pemeriksaan. Ada juga sejumlah besar benih proyek-proyek di luar sana yang akan membantu anda memulai dengan Ketangkasan dalam kombinasi dengan banyak teknologi lain seperti Sudut 2, Bereaksi, Ember, SystemJS, Webpack, Menelan, dll.

JavaScript interoperabilitas

Sejak Naskah ini sangat berkaitan erat dengan JavaScript ini memiliki kemampuan interoperabilitas, tapi beberapa pekerjaan tambahan yang diperlukan untuk bekerja dengan JavaScript pustaka dalam Naskah. Ketangkasan definisi yang diperlukan agar Naskah compiler memahami bahwa fungsi panggilan seperti _.groupBy atau sudut.copy atau $.fadeOut tidak pada kenyataannya pernyataan ilegal. Definisi fungsi-fungsi ini ditempatkan dalam .d.ts file. Bentuk paling sederhana suatu definisi yang dapat anda ambil adalah untuk memungkinkan sebuah identifier yang akan digunakan dengan cara apapun. Misalnya, ketika menggunakan Lodash, satu baris file definisi menyatakan var _ : apapun akan memungkinkan anda untuk memanggil fungsi yang anda inginkan pada _, tapi kemudian, tentu saja, anda juga masih bisa membuat kesalahan: _.foobar() akan menjadi hukum Ketangkasan panggilan, tapi, tentu saja, ilegal panggilan pada saat run-time. Jika anda ingin jenis yang tepat dukungan dan code completion anda file definisi kebutuhan untuk menjadi lebih tepat (lihat lodash definisi untuk contoh). Npm modul yang datang pra-dikemas dengan jenis mereka sendiri definisi secara otomatis dipahami oleh Ketangkasan compiler (lihat dokumentasi). Karena cukup banyak yang lain semi-populer library JavaScript yang tidak memasukkan sendiri definisi seseorang di luar sana telah membuat definisi jenis lain yang tersedia melalui npm modul. Modul-modul ini diawali dengan "@jenis/" dan berasal dari repositori Github disebut DefinitelyTyped. Ada satu peringatan: definisi jenis harus sesuai dengan versi library yang anda gunakan pada saat run-time. Jika mereka tidak, Ketangkasan mungkin melarang anda dari pemanggilan fungsi atau dereferencing variabel yang ada atau memungkinkan anda untuk memanggil fungsi atau dereference variabel yang tidak ada, hanya karena jenis tidak sesuai dengan run-time pada waktu kompilasi. Jadi pastikan anda memuat versi yang tepat dari jenis definisi untuk versi yang tepat dari perpustakaan anda menggunakan. Jujur, ada sedikit kerumitan untuk ini dan itu mungkin salah satu alasan anda tidak memilih Naskah, tapi bukannya pergi untuk sesuatu seperti Babel yang tidak menderita dari keharusan untuk mendapatkan jenis definisi di semua. Di sisi lain, jika anda tahu apa yang anda lakukan anda dapat dengan mudah mengatasi segala jenis masalah yang disebabkan oleh salah atau hilang file definisi.

Mengkonversi dari JavaScript untuk Ketangkasan

Apapun .js file dapat diganti ke .ts file dan berlari melalui Naskah compiler untuk mendapatkan sintaksis yang sama kode JavaScript sebagai output (jika itu sintaksis yang benar di tempat pertama). Bahkan ketika Naskah compiler akan kesalahan kompilasi ini masih akan menghasilkan .js file. Itu bahkan dapat menerima .js file sebagai input dengan --allowJs bendera. Hal ini memungkinkan anda untuk memulai dengan Ketangkasan segera. Sayangnya, kompilasi kesalahan yang mungkin terjadi di awal. Salah satu tidak perlu ingat bahwa ini bukan acara-berhenti kesalahan seperti anda dapat digunakan untuk dengan penyusun lainnya. Kompilasi kesalahan datang di awal ketika mengkonversi proyek JavaScript untuk Ketangkasan proyek yang tidak dapat dihindari oleh Ketangkasan's alam. Naskah cek semua kode validitas dan dengan demikian perlu tahu tentang semua fungsi-fungsi dan variabel yang digunakan. Dengan demikian jenis definisi yang perlu berada di tempat untuk semua dari mereka jika kesalahan kompilasi terikat untuk terjadi. Seperti yang disebutkan dalam bab di atas, untuk cukup banyak framework JavaScript ada .d.ts file yang dapat dengan mudah diperoleh dengan pemasangan DefinitelyTyped paket. Itu mungkin, bagaimanapun, bahwa anda've digunakan beberapa perpustakaan jelas yang tidak ada Naskah definisi tersedia atau yang anda've polyfilled beberapa JavaScript primitif. Dalam hal ini, anda harus menyediakan jenis definisi untuk bit ini untuk kompilasi kesalahan menghilang. Hanya membuat .d.ts file dan memasukkannya dalam tsconfig.json's file array, sehingga selalu dianggap oleh Ketangkasan compiler. Di dalamnya menyatakan bit tersebut bahwa Naskah yang tidak tahu tentang jenis ada. Setelah anda've menghilangkan semua kesalahan anda bisa secara bertahap memperkenalkan mengetik untuk bagian-bagian yang sesuai dengan kebutuhan anda. Beberapa pekerjaan yang di (re)konfigurasi anda membangun pipa juga akan dibutuhkan untuk mendapatkan Ketangkasan dalam membangun pipa. Seperti yang disebutkan dalam bab tentang kompilasi ada banyak sumber daya yang baik di luar sana dan saya mendorong anda untuk mencari benih proyek-proyek yang menggunakan kombinasi dari alat-alat yang anda ingin bekerja dengan. Rintangan terbesar adalah kurva belajar. Saya mendorong anda untuk bermain-main dengan proyek kecil pada awalnya. Lihatlah bagaimana ia bekerja, bagaimana ia membangun, satu file yang menggunakan, bagaimana dikonfigurasi, bagaimana fungsinya dalam IDE anda, bagaimana terstruktur, alat-alat yang menggunakan, dll. Mengkonversi besar basis kode JavaScript untuk Naskah ini bisa dilakukan ketika anda tahu apa yang anda lakukan. Baca blog ini misalnya pada mengkonversi 600k garis untuk naskah dalam 72 jam). Hanya pastikan anda memiliki pemahaman yang baik tentang bahasa sebelum anda membuat lompatan.

Adopsi

Ketangkasan adalah open-source (Apache 2 lisensi, lihat GitHub) dan didukung oleh Microsoft. Anders Hejlsberg, arsitek utama dari C# adalah ujung tombak proyek tersebut. It's sangat aktif proyek; Ketangkasan tim telah merilis banyak fitur-fitur baru dalam beberapa tahun terakhir dan banyak orang-orang besar yang masih direncanakan untuk datang (lihat roadmap). Beberapa fakta tentang adopsi dan popularitas:

  • Dalam 2017 StackOverflow pengembang survei Ketangkasan adalah JavaScript yang paling populer transpiler (tempat ke-9 secara keseluruhan) dan memenangkan tempat ketiga di paling dicintai bahasa pemrograman kategori.
  • Dalam 2018 keadaan js survei Naskah dinyatakan sebagai salah satu dari dua pemenang besar dalam JavaScript rasa kategori (dengan ES6 yang lain).
  • Dalam 2019 StackOverlow deverloper survei Ketangkasan naik ke tempat ke-9 dari bahasa yang paling populer di kalangan pengembang profesional, menyalip kedua C dan C++. Lagi mengambil tempat ketiga di antara yang paling yang paling dicintai bahasa.
Komentar (10)

Ketangkasan melakukan sesuatu yang mirip dengan apa yang less atau sass tidak untuk CSS. Mereka adalah super set ini, yang berarti bahwa setiap kode JS yang anda tulis adalah valid Ketangkasan kode. Plus anda dapat menggunakan barang lainnya yang menambah bahasa, dan transpiled kode akan berlaku js. Anda bahkan dapat mengatur JS versi yang anda inginkan anda sehingga kode pada.

Saat ini Naskah adalah satu set super ES2015, sehingga mungkin menjadi pilihan yang baik untuk mulai belajar js baru fitur dan transpile untuk kebutuhan standar untuk proyek anda.

Komentar (3)

"Ketangkasan dasar-Dasar" - sebuah Pluralsight video-tentu saja dengan Dan Wahlin dan John Papa adalah benar-benar baik, saat ini (25 Maret 2016) diperbarui untuk mencerminkan Naskah 1.8, pengantar untuk Naskah.

Bagi saya benar-benar fitur yang baik, di samping bagus kemungkinan untuk intellisense, ini adalah kelas, antarmuka, modul, kemudahan pelaksanaan AMD, dan kemungkinan untuk menggunakan Visual Studio Ketangkasan debugger ketika dipanggil dengan IE.

Untuk meringkas: Jika digunakan sebagaimana dimaksud, Ketangkasan dapat membuat pemrograman JavaScript lebih dapat diandalkan, dan lebih mudah. Hal ini dapat meningkatkan produktivitas programmer JavaScript secara signifikan lebih lengkap SDLC.

Komentar (3)

Ecma script 5 (ES5) yang semua browser mendukung dan dikompilasi. ES6/ES2015 dan ES/2016 datang tahun ini dengan banyak perubahan sehingga muncul perubahan ini ada sesuatu di antara yang harus mengambil peduli tentang jadi Ketangkasan.

• Naskah adalah Jenis -> Berarti kita harus menentukan tipe data dari masing-masing properti dan metode. Jika anda tahu C# kemudian Ketangkasan lebih mudah untuk memahami.

• Keuntungan besar dari Naskah yang kita identitas Jenis terkait isu-isu awal sebelum masuk ke produksi. Hal ini memungkinkan unit tes untuk gagal jika ada ketidakcocokan jenis.

Komentar (4)