2017-02-27 78 views
0

我有2個文件打字稿 -編譯多個打字稿文件分別

a.ts:

let some : string = "some"; 

b.ts:

console.log(some); 

如果我編譯這兩個文件將其添加到包括選項在tsconfig中(或通過在命令行上提供),b.ts中沒有定義某些錯誤。我怎樣才能分別編譯這兩個文件?首先分享命名空間對他們來說甚至沒有意義。

回答

1

JavaScript中沒有命名空間。如果您在瀏覽器中加載了兩個編譯的文件(按照正確的順序),console.log將工作。 TypeScript重現此功能。

JavaScript(和TypeScript)的方式是使用ES6 modules,例如Webpack。

你的模塊例如:

// a.ts 
export let some = "some"; 

// b.ts 
console.log(some); // Error here 

// c.ts 
import { some } from "./a" 
console.log(some); // OK 
+0

感謝。 我想要做的一件事是能夠在多個文件中定義相同的命名空間,但仍然能夠在不使用命名空間變量的情況下在其他文件中引用變量(在相同的命名空間中)。可能嗎? – Nishant

+0

With [TypeScript _namespaces_](http://www.typescriptlang.org/docs/handbook/namespaces.html)?不,這是不可能的。命名空間被編譯爲多個IIFE,變量只能在本地IIFE中訪問。 – Paleo