Saya mahu memaksa kami untuk sentiasa menaip objek yang memusnahkan sebaris dan bukannya mencipta definisi jenis yang berasingan. Sebagai contoh, untuk komponen React, saya ingin memaksa semua kod kami menggunakan corak ini:
const SomeComponent = ({ foo, bar }: { foo: string, bar: boolean }) => { return ... }
bukannya:
type Props = { foo: string, bar: boolean, }; const SomeComponent = ({ foo, bar }: Props} => { return ... }
Saya menyemak peraturan ESLint dan tidak menemui apa-apa yang serupa, adakah sesiapa mempunyai sebarang cadangan?
Setahu saya - pada masa ini tiada peraturan lint sedia ada yang menguatkuasakan mod ini.
Anda boleh menggunakan
no-restricted-syntax
untuk menguatkuasakan peraturan lint (Contoh), tetapi seperti yang dicadangkan oleh ulasan pada siaran anda - ini bukan idea yang baik.Tidak mungkin untuk mencipta pemilih yang hanya sepadan dengan "komponen fungsi reaktif" kerana komponen fungsi reaktif hanyalah fungsi. Jadi (seperti yang ditunjukkan oleh contoh saya) pendekatan mudah ini akan menghasilkan banyak bunyi dan positif palsu dalam pangkalan kod anda - yang tidak baik kerana ia menghasilkan bunyi untuk pasukan anda.
Anda boleh membuat peraturan tersuai melalui , tetapi anda tidak boleh benar-benar menjadikan nombor ini sifar.
BTW - Gaya pengekodan ini tidak bagus kerana ia bertentangan dengan konvensyen industri. Adalah sangat biasa dan popular untuk menentukan jenis yang berasingan supaya ia boleh diimport ke dalam pengguna dan digabungkan dengan jenis lain - contohnya apabila membuat komponen tertib atau pembalut yang lebih tinggi.
Dengan sentiasa menentukan jenis sebaris, anda menjadikannya lebih sukar kerana anda tiada pilihan selain mendapatkan jenis prop melalui
Params<typeof MyComponent>[0]
.