Anda dapat menggunakan tsxalih-alih tsdengan sedikit perbedaan. tsxjelas memungkinkan penggunaan jsxtag di dalam skrip ketikan, tetapi ini memperkenalkan beberapa ambiguitas penguraian yang membuat tsx sedikit berbeda. Menurut pengalaman saya, perbedaan ini tidak terlalu besar:
Ketik pernyataan dengan <>tidak berfungsi karena itu adalah penanda untuk tag jsx.
Ketik memiliki dua sintaks untuk pernyataan tipe. Keduanya melakukan hal yang persis sama tetapi yang satu dapat digunakan di tsx, yang lainnya tidak:
let a: any;
let s = a as string // ok in tsx and ts
let s2 = <string>a // only valid in ts
Saya akan menggunakan asalih-alih <>dalam tsfile juga untuk konsistensi. assebenarnya diperkenalkan di Typecript karena <>tidak dapat digunakan ditsx
Fungsi panah umum tanpa batasan tidak diurai dengan benar
Fungsi panah di bawah ini baik-baik saja tstetapi kesalahan dalam tsxas <T>ditafsirkan sebagai awal dari tag ditsx
const fn = <T>(a: T) => a
Anda bisa menyiasatinya dengan menambahkan batasan atau tidak menggunakan fungsi panah:
const fn = <T extends any>(a: T) => a
const fn = <T,>(a: T) => a // this also works but looks weird IMO
const fn = function<T>(a: T) { return a;}
Catatan
Meskipun Anda dapat menggunakan tsx daripada ts, saya akan merekomendasikan untuk tidak melakukannya. Konvensi adalah hal yang kuat, orang-orang berasosiasi tsxdengan jsxdan mungkin akan terkejut Anda tidak memiliki jsxtag apa pun , sebaiknya jaga agar kejutan pengembang seminimal mungkin.
Sementara ambiguitas di atas (meskipun mungkin bukan daftar lengkap) tidak besar, mereka mungkin memainkan peran besar dalam keputusan untuk menggunakan ekstensi file khusus untuk sintaks baru agar tsfile tetap kompatibel.