2016-03-21 166 views
0

我有一個關於打字稿模塊... 我寫在打字稿角1.5應用程序的一些問題之間的區別,我寫我的文件是這樣的:磨是打字稿模塊

CarModel.ts

module app.models{ 
    export class Car{ 
     type:string; 
     color: string; 
    } 
} 

CarsController.ts

module app.controllers{ 

    import Car = app.Car; 

    export class CarsController{ 
     private car:Car; 
     ... 
    } 
} 

但最近我在互聯網上看到這類型的使用:

CarModel.ts

export class Car{ 
    type:string; 
    color: string; 
} 

CarsController.ts

import {Car} from './models'; 
export class CarController{ 
    private car:Car; 
    .... 
} 

現在我想知道除了語法之外有什麼區別? 還什麼之間的區別在於:

module app.module1{} 

declare module app.module1 {} 

請注意,我使用的Visual Studio 2015年,我的目標是ES5。

回答

0

你的第一個例子是一個內部模塊。這會創建一個用於訪問內容的全局變量。第二個是外部模塊,它不創建全局變量。外部模塊需要某種類型的庫,比如systemjs或webpack,以使它們在客戶端工作。內部模塊不。

內部模塊已重命名爲命名空間,以防止這種確切類型的混淆。只需將關鍵字module替換爲namespace即可。

+0

在VS項目模板中,我認爲它的模塊加載器使用了require.js。 – Magrangs