2017-05-30 16 views
2

私は名前を付けたすべてのエクスポートをインポートするためのエレガントな方法を探していますが、デフォルトをインポートする必要はありません。私はデフォルトをインポートすることなく、すべての名前付き輸出のみをインポートするエレガントな方法を持っていると思い、別のファイルでES6 - すべての名前付きエクスポートをインポートするにはエレガントな方法がありますが、デフォルトのエクスポートはインポートできませんか?

// myModule.js 
const myDefault = 'my default' 
export const named1 = 'named1' 
export const named2 = 'named2' 
// many more named exports - otherwise this would not be an issue... 
export default myDefault 

:私は多くの名前付き定数を加えたデフォルトを輸出していますファイルを1つ

// anotherFile.js 
// this is what I would like to do, but syntax is not supported, right? 
import { * as namedOnly } from './myModule' 

私ははしたくありません0

私はanotherFile.jsにデフォルトを必要とせず、私の糸くず用ツールは約 で定義されていますが未使用のmyDefaultです。それはあまりにも多くのタイピングだから

// anotherFile.js 
import { 
    named1, 
    named2, 
    ... // many more 
} from './myModule' 

:も私はしたいです。任意の助け

// anotherFile.js 
import omit from 'object.omit' 
import * as all from './myModule' 
const namedOnly = omit(all, 'default') 

ありがとう:私はまた、ないobject.omitデフォルトにしたいですか!

+0

私はこのための短い構文があるとは思わない。 –

+0

これを可能にするES仕様には現在の構文がありません。 – varbrad

+0

よろしくお願い致します。私は何とかそれを逃した可能性があると思った...しかし、持っていいだろう、右か? – mcmunder

答えて

6

「名前付き」エクスポートと「デフォルト」エクスポートの間に分離はありません。デフォルトのエクスポートは名前付きのエクスポートです。特定の構文での使用を容易にするために特別なケースになっている名前はdefaultです。

エクスポートすべてのキーをインポートする唯一の方法は、

import * as foo from "foo"; 

であり、1つがある場合には、指定された輸出defaultが含まれます。小切手から除外したい場合は、omit()の例のように、自分の論理でそれを処理することができます。

関連する問題