Node.js menambahkan dukungan eksperimental untuk TypeScript
(github.com/nodejs)Modul: penambahan --experimental-strip-types
-
Bisa menjalankan file TypeScript di Node.js
- Dengan mengatur flag
--experimental-strip-types, file TypeScript dapat dijalankan - Node.js mengubah kode sumber TypeScript menjadi kode sumber JavaScript
- Pada proses konversi, pemeriksaan tipe tidak dilakukan dan tipe dihapus
- Dengan mengatur flag
-
Latar belakang
- Penting untuk memungkinkan file TypeScript dijalankan tanpa dependensi eksternal atau loader
- Pengguna diharapkan bisa menjalankan
node foo.ts
-
Arti type stripping
- Type stripping berarti menghapus semua tipe dan mengubah input menjadi modul JavaScript
- Contoh:
const foo: string = "foo";diubah menjadiconst foo = "foo";
-
Alasan memilih @swc/wasm-typescript
- Karena lebih sederhana
- Alat lain perlu menambahkan Rust atau Go, tetapi @swc/wasm-typescript hanya memerlukan paket kecil serta file wasm dan js
- Juga digunakan di Deno sehingga dapat dipercaya
-
Keterbatasan
- Fitur khusus TypeScript seperti enum dan namespace tidak dikonversi
- Import tanpa ekstensi tidak didukung
-
Rencana ke depan
- Ada kemungkinan diimplementasikan pada lapisan native
- Dukungan source map dapat ditambahkan
Ringkasan GN⁺
- Menjelaskan fitur baru yang memungkinkan file TypeScript dijalankan di Node.js
- File TypeScript dapat dijalankan setelah dikonversi menjadi JavaScript, tanpa pemeriksaan tipe
- Ini menyederhanakan lingkungan pengembangan karena pengguna dapat menjalankan file TypeScript tanpa dependensi eksternal
- Fitur ini diimplementasikan menggunakan @swc/wasm-typescript, dan implementasi di lapisan native juga sedang dipertimbangkan untuk masa mendatang
- Dapat berguna untuk proyek yang menggunakan TypeScript dan JavaScript secara campuran.
1 komentar
Komentar Hacker News
Menghapus tipe TypeScript tidak mungkin dilakukan tanpa sintaks TypeScript. Penghapusan tipe bukan pekerjaan di level token, dan sintaks TypeScript terus berubah
foo < bar & baz > ( x )ditafsirkan secara berbeda di TypeScript 1.5Jika Node.js bisa menjalankan file TypeScript secara langsung, kompiler TypeScript tidak perlu menghapus tipe dan mengubahnya menjadi JavaScript
Penasaran bagaimana ekosistem NPM akan bereaksi jika fitur ini menjadi default
engine: nodejs >= 25ke package.json dan melewati tahap buildAkan sangat menguntungkan jika Node bisa menginspeksi tipe di JS
Developer experience (DX) Bun di area ini belum pernah tertandingi, dan sudah memenuhi sebagian besar use case
Saya sangat menikmati TypeScript dan sudah lama mendambakan runtime TypeScript
Fitur deno favorit saya akhirnya masuk langsung ke Node
Ini adalah sebulan yang sangat penting bagi Node
Saya penulis PR-nya, AMA
Sudah lama saya mulai memakai Node.js untuk pekerjaan backend, dan itu memberi banyak keunggulan dibanding PHP