Proposal ECMA akan membawa record dan tuple ke JavaScript

JavaScript akan mendapatkan jenis nilai record dan tuple di bawah proposal sebelum ECMA International, badan standar yang mengawasi bahasa pemrograman populer untuk pengembangan web.

Records dan tuple akan memperkenalkan dua struktur data yang tidak dapat diubah ke JavaScript Record:, struktur mirip objek, dan Tuple, struktur mirip larik. Draf rencana dengan ECMA Technical Committee 39, yang mengatur ECMAScript, JavaScript yang mendasari standar.

Catatan dan tupel, kata proposal, hanya dapat berisi primitif dan catatan lain serta tupel. Mereka dapat dianggap sebagai "primitif majemuk". Dan dengan sepenuhnya didasarkan pada primitif, mereka sangat kekal. Seperti objek dan array, record dan tuple mendukung idiom yang nyaman untuk konstruksi, penggunaan, dan manipulasi, kata proposal. Mereka dibandingkan dengan isi dan bukan dengan identitas.

Mesin JavaScript mungkin melakukan pengoptimalan tertentu pada konstruksi, manipulasi, dan perbandingan record dan tuple, serupa dengan bagaimana string diimplementasikan. Rekaman dan tupel dimaksudkan agar dapat digunakan dan dipahami dengan superset sistem tipe eksternal seperti TypeScript atau Flow.

Saat ini, pustaka userland seperti immutable.js menerapkan konsep serupa. Proposal ECMA sebelumnya untuk struktur data yang tidak dapat diubah telah dicoba tetapi ditinggalkan karena kompleksitas dan kurangnya kasus penggunaan yang memadai, kata proposal tersebut. Proposal baru memperkenalkan perubahan signifikan, menawarkan keunggulan kegunaan dibandingkan perpustakaan userland seperti berikut ini:

  • Record dan tuple dapat dengan mudah di-introspeksi dalam debugger.
  • Percabangan tambahan tidak diperlukan untuk menulis pustaka umum yang menggunakan objek tetap dan JS.
  • Kasus penggunaan dihindari di mana pengembang dapat mengonversi secara mahal antara objek JS biasa dan struktur yang tidak dapat diubah.

Rekaman dan tupel bekerja dengan baik dengan objek dan larik. Mereka dapat dibaca dengan cara yang sama seperti objek dan array. Perbedaan utama berpusat pada kekekalan yang mendalam dan perbandingan berdasarkan nilai daripada identitas. Juga, sintaks yang diusulkan secara signifikan meningkatkan ergonomi penggunaan Recorddan Tuplekode.

Versi spesifikasi ECMAScript terbaru, versi 2020, diadopsi pada bulan Juni. Ini menampilkan kemampuan di berbagai bidang seperti pemuatan modul dan BigInttipe baru .