Typescript は d.ts で名前付きエクスポートを動的に宣言します
P粉642436282
P粉642436282 2024-02-26 11:58:58
0
1
408

TypeScript で VueJ のコンポーネント ライブラリを作成しました。それらを Vue インスタンスでグローバルに使用できるようにしたい (Vue.use(library) を使用)、または 1 つずつ使用できるようにしたい (Vue を使用)コンポーネント内の名前付きインポート)

これは問題なく動作しますが、index.d.ts ファイル内のすべてのコンポーネントを動的に宣言したい場合に TypeScript を使用すると問題が発生します (コンポーネントが多く、宣言したくないため)手動実行)

したがって、これは有効です:

リーリー

しかし、コンポーネントを 1 つずつインポートおよびエクスポートせずに、すべてのコンポーネントに対してこれを行う方法を探しています。

私は次のようなことを試しました:

リーリー ###または### リーリー

しかし、機能しません。

import { Component1 } from 'my-library'

を実行すると、TS エラーが発生します: 「シンボル「Component1」を解決できません TS2614: モジュール 'my-library' はメンバー 'Component1' をエクスポートしません。 「"my-library" から Component1 をインポート」を使用する予定ですか? 「

ps: インポートする前に

//@ts-ignore

を使用すると、すべて正常に動作します。 ###何か案は?

P粉642436282
P粉642436282

全員に返信(1)
P粉739886290

私の推測では、これは TS がビルド時に「型チェック」を行う必要があるためだと思います。言い換えれば、TS は実行時ではなくビルド時に定義される必要があるため、柔軟性が失われる主な例の 1 つである JS よりも制限が厳しくなります。

つまり、これはできません。できることは、キー付きオブジェクト内のすべてをエクスポートすることだけですが、それを別のファイルにインポートするときは、その一部だけではなく全体を取得する必要があることを意味します。

ファイル.vue



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