ダイナミックインポートのデフォルトObject.freezeをエクスポートする方法?

トム:

私は動的にインポートされたモジュール内で凍結されたオブジェクトをエクスポートしようとしている、それが失敗しています。

私の主なモジュールは以下のとおりです。

import ('./hello.mjs').then(function (o) {
    o.hello();
});

私のインポートされたモジュール、hello.mjsは、このコードを持っています:

function hello () {
    console.log('Hello');
}

export default Object.freeze({ hello });

このプログラムは、コンソールでこのエラーで失敗します。

TypeError: o.hello is not a function at main.mjs:2

しかし、私はこのような単純な輸出を、使用している場合:

function hello () {
    console.log('Hello');
}

export { hello };

...それは動作します。デフォルトの凍結オブジェクトをエクスポートすると、非動的モジュールのインポートに対応しています。なぜ動的モジュール輸入は異なる挙動を示すか、と私はこれを修正するために何ができるのでしょうか?

TJクラウダー:

動的インポートからの約束の履行値であり、モジュールの名前空間オブジェクトモジュールの。(参照FinishDynamicImport。仕様では)プロパティを使用し、デフォルトのエクスポートにアクセスするにはdefault、おそらく非構造を経由して、それに:

import ('./hello.mjs').then(function ({default: o}) {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^
    o.hello();
});

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=303486&siteId=1