cari

Rumah  >  Soal Jawab  >  teks badan

Adakah terdapat cara untuk menggunakan ESLint untuk memaksa objek yang memusnahkan ditaip sebaris, dan bukannya menggunakan definisi jenis yang berasingan?

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粉445714413P粉445714413274 hari yang lalu427

membalas semua(1)saya akan balas

  • P粉530519234

    P粉5305192342024-02-27 18:49:03

    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 <来减少误报率< /a>, 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] .

    balas
    0
  • Batalbalas