2016-04-12 21 views
1

import`語句,我更喜歡不同import語句從視覺,概念,和工作流透視:多打字稿`特別是重構過程中單個模塊

import {Component}  from 'angular2/core'; 
import {Input}   from 'angular2/core'; 
import {enableProdMode} from 'angular2/core'; 

,而不是較常見的直列形式:

import {Component, Input, enableProdMode} from 'angular2/core'; 

或包裹直列形式:

import { 
    Component, 
    Input, 
    enableProdMode 
    }     from 'angular2/core'; 

的TS組合物1應該足夠精明的解決這個問題,但我不知道它是什麼。是否對生成的JavaScript有負面影響TypeScript 1.8+使用多個TypeScriptimport對於一個模塊的語句?

回答

2

如果您更喜歡在不同的行進口的每一個對象只爲你正在查看你可以做這個東西的緣故:

import { 
    Component, 
    Input, 
    enableProdMode 
} from 'angular2/core'; 

編輯:

中的差異生成的代碼是在多個導入的情況下爲同一個模塊生成不同的變量。在你的情況,你可能有編譯這樣的代碼(如果你的源文件CommonJS的)一個js:

var angular2_core_1 = require('angular2/core'); 
var angular2_core_2 = require('angular2/core'); 
var angular2_core_3 = require('angular2/core'); 

如果只有一個進口,你將有隻有一個變量。

在任何情況下,模塊都是單例,因此多次導入相同模塊並不重要,每個模塊總是隻有一個實例。

+0

謝謝,@VinTem - 是的,我知道這一點;我應該更清楚。在重構過程中,我使用不同的'imports'進行排序,分組和重複數據刪除工作流程,所以這種形式在我的用例中不起作用。我會補充一點我的問題。 –

+0

考慮將單例模塊方面分離成單獨的答案@VinTem。 –

+0

我已更新我的答案@JanNielsen,希望它有幫助。 – vintem

1

打字稿將產生三個require電話:

var core_1 = require('angular2/core'); 
var core_2 = require('angular2/core'); 
var core_3 = require('angular2/core'); 

但每個模塊將只加載一次。生成的JavaScript代碼的大小會稍微增加。

+0

有趣,@kemsky - 謝謝! –