import * as CodeMirror
をただちにimport CodeMirror
に変更してバグを修正しました。ES2015 `import * as`との違い` import`
- 私はthis codeをコピーしました。 (TypeScriptから移植する)
import * as CodeMirror
副作用のためにアドオンをインポートするまで機能しました。予想される新しいfold
プロパティは未定義です。
質問:で何が起こっているのか
- (私はより良い何が起こったのか理解しようとしていますか)?この変更によってバグがどのように修正されましたか?
default
プロパティをCodeMirrorに追加するのは誰ですか? (またはそれ以上の可能性:非常に似ています別のオブジェクト内のモジュールラップ)、最も可能性の高い容疑者:- JavaScriptのモジュール(ES2015)
- バベル
- のWebPACK
- のCoffeeScriptを
- CodeMirror
- 私が達成しようとしていたことを達成する良い方法はありますか?
詳細:
このコードは期待どおりに動作しません:
import * as CodeMirror from 'codemirror'
import 'codemirror/addon/fold/indent-fold.js' # should add `fold` object to `CodeMirror`
console.log typeof CodeMirror ## 'object'
console.log typeof CodeMirror.fold ## 'undefined'
console.log typeof CodeMirror.default ## 'function'
## Work-around:
console.log typeof CodeMirror.default.fold ## 'object'
このコードは期待通りに動作します:
import CodeMirror from 'codemirror'
import 'codemirror/addon/fold/indent-fold.js' # should add `fold` object to `CodeMirror`
console.log typeof CodeMirror ## 'function'
console.log typeof CodeMirror.fold ## 'object'
console.log typeof CodeMirror.default ## 'undefined'
は、私はすでに、これらのリソースを研究してきたが、彼らは私が完全に何が起こったのか理解に役立っていない:
'codemirror''のCodeMirrorとして 'import *'の結果として' CodeMirror.default'プロパティが存在するのは普通ですか?私は 'codemirror'が「default」という名前のエクスポートを明示的に指定していないと考えています – Leftium
デフォルトのエクスポートは' export default'とマークされていますが、ワイルドカードをインポートするとキー' default' 。 –