2017-02-27 44 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