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

Typescript: タプルの配列からの動的リスト、交差なし

<p><pre class="brush:php;toolbar:false;">const インテント = ["プライマリ", "セカンダリ", "アクセント", "危険"] as const; const buttonSizes = ["小さい"、"中"、"大きい"] as const; type IntentType = (インテントのタイプ)[数値]; type SizeType = (ボタンサイズの種類)[数値]; タイプ ButtonProps = { インテント?: インテントタイプ; サイズ?: サイズタイプ; } & { [IntentType の K は `${小文字<K>}` として]?: ブール値; };</pre> <p>このコードでは、Vue コンポーネントが次のプロパティを受け取ることができることを期待しています。 </p> <p>または のように </p> <p>ここで、次のようにコードをより静的に書いてみます。</p> <pre class="brush:php;toolbar:false;">type ButtonProps = { 意図?: "プライマリ" | "セカンダリ" | "アクセント" | "危険"; サイズ?: "小" | "中" | "大"; プライマリ?: ブール値; 二次?: ブール値; アクセント?: ブール値; 危険?: ブール値; }</pre> <p>それは機能します...しかし、インテントオプションを反復処理して、それを繰り返し続ける必要があるコードが他にもいくつかあります...</p> <p>最初の例は機能しますが、何らかの理由で VUE がエラーをスローします</p> <ブロック引用> <p>内部サーバー エラー: [@vue/compiler-sfc] 型パラメータが渡されました DefineProps() はリテラル型またはインターフェイスへの参照である必要があります またはテキストタイプ。 </p> </blockquote> <p>このバグは既知で解決されているようですので、</p> <p>交差を使用せずに ButtonProps をより動的に定義する他の方法は何ですか? </p>
P粉163951336P粉163951336414日前424

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

  • P粉384244473

    P粉3842444732023-09-01 18:26:56

    エラーに「インターフェイスまたはリテラル型を参照しています」と表示されていることから、基本型を拡張するインターフェイスとして ButtonProps を定義すると機能すると思います。

    リーリー ######遊び場######

    返事
    0
  • キャンセル返事