Adakah terdapat cara untuk menggunakan ESLint untuk memaksa objek yang memusnahkan ditaip sebaris, dan bukannya menggunakan definisi jenis yang berasingan?
P粉445714413
P粉445714413 2024-02-26 20:05:49
0
1
423

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?

P粉445714413
P粉445714413

membalas semua(1)
P粉530519234

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] .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan