プロパティから推論された汎用データ型を持つ Vue 3/Nuxt 3 スコープのスロット
P粉863295057
P粉863295057 2023-11-02 21:59:05
0
1
753

Nuxt v3 にカルーセル コンポーネントを実装したいと考えています。このコンポーネントは項目のリストを受け取ります。このコンポーネントはロジックのみを実装し、スタイルや構造は実装しません。

これが私のコンポーネントです:

コンポーネント/tdx/carousel.vue

リーリー

カルーセルのロジックはここでは重要ではありません。

親コンポーネントでは、次のようにコンポーネントを使用できます:

リーリー

これはうまくいきます。それ以外に私が欲しいのはタイピングです。 titledescription のタイプは、もちろん任意です。carousel.vue の小道具では、項目のタイプは unknown[] であるためです。

汎用コンポーネントの作成方法を示したこの記事を見つけましたが、nuxt の自動インポート システムをいじる必要があるため、これは望ましくありません。

carousel.vue プロパティ内の特定の項目から型推論を実装するにはどうすればよいですか?

P粉863295057
P粉863295057

全員に返信(1)
P粉476547076

更新日: 2023 年 5 月

Vue 3.3 以降、共通コンポーネントを正式にサポート.

共通パラメータを定義する必要があります。 carousel.vue コンポーネントを変更して、 タグの generic プロパティを使用し、型ベースの defineProps を使用するように変換します。メソッドを使用して、ジェネリックスを正しく取得できるようにします。

リーリー

スロット上のプロパティがアイテム タイプに基づいて正しく推測されるようになりました。

2023年5月以前

  • #RFC #436
以前のバージョンの VSCode/Volar では、

Experimental フラグ を有効にする必要がありました。 tsconfig.json の experimentalRfc436 オプションを vueCompilerOptions で有効にする必要があります。 リーリー

Volar の最近のバージョンではデフォルトで有効になっているため、これは必要ありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート