ホームページ  >  に質問  >  本文

ESLint を使用して、別個の型定義を使用するのではなく、構造化オブジェクトを強制的にインラインで型指定する方法はありますか?

個別の型定義を作成するのではなく、常にオブジェクトの構造化をインラインで型指定するように強制したいと考えています。たとえば、React コンポーネントの場合、すべてのコードで次のパターンを使用するように強制したいとします:

const SomeComponent = ({ foo, bar }: { foo: 文字列, bar: ブール値 }) => {
  戻る...
}
### の代わりに: ###

type Props = { foo: 文字列、 バー: ブール値、 }; const SomeComponent = ({ foo, bar }: Props} => { 戻る... }

ESLint ルールを確認しましたが、同様のものは見つかりませんでした。何か提案はありますか? 
P粉445714413P粉445714413258日前405

全員に返信(1)返信します

  • P粉530519234

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

    私の知る限り、現在、このモードを強制する既存の lint ルールはありません。

    #no-restricted-syntax (Example) を使用して lint ルールを強制できますが、投稿のコメントが示唆するように、これは良いアイデアではありません。

    リアクティブ関数コンポーネントは単なる関数であるため、「リアクティブ関数コンポーネント」のみに一致するセレクターを作成することはできません。したがって、(私の例が示すように) この単純なアプローチでは、コードベースに多くのノイズと誤検知が発生します。これはチームにノイズをもたらすため、良くありません。

    カスタム ルール

    を作成することはできますが、この数値を実際にゼロにすることはできません。 <来减少误报率

    ところで、このコーディング スタイルは業界の慣例に反しているため、適切ではありません。たとえば、高次コンポーネントやラッパー コンポーネントを作成する場合など、コンシューマにインポートして他のタイプと組み合わせることができるように、別のタイプを定義することは非常に一般的で一般的です。

    常に型をインラインで定義すると、

    Params<typeof MyComponent>[0]

    経由で prop 型を取得する以外に選択肢がないため、作業が難しくなります。

    返事
    0
  • キャンセル返事