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

Typescript は d.ts で名前付きエクスポートを動的に宣言します

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粉642436282P粉642436282236日前388

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

  • P粉739886290

    P粉7398862902024-02-27 09:24:22

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

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

    ファイル.vue

    
    
    

    返事
    0
  • キャンセル返事