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 を使用すると、すべて正常に動作します。
###何か案は?
私の推測では、これは TS がビルド時に「型チェック」を行う必要があるためだと思います。言い換えれば、TS は実行時ではなくビルド時に定義される必要があるため、柔軟性が失われる主な例の 1 つである JS よりも制限が厳しくなります。
つまり、これはできません。できることは、キー付きオブジェクト内のすべてをエクスポートすることだけですが、それを別のファイルにインポートするときは、その一部だけではなく全体を取得する必要があることを意味します。
ファイル.vue