如何在TypeScript中正确地将namespace与外部模块一起使用?
你好!我正在学习TypeScript,并尝试组织我的项目。以前我使用namespace(命名空间)来组织单个文件内的代码,但现在项目变大了,我想将代码拆分成单独的模块(文件)。
问题是,当我尝试导入包含namespace的模块时,会出现错误,或者namespace的行为不符合我的预期。
以下是我正在做的示例:
我有一个文件 `math.ts`:
```typescript
namespace MathUtils {
export function add(a: number, b: number): number {
return a + b;
}
export function subtract(a: number, b: number): number {
return a - b;
}
}
```
以及文件 `app.ts`:
```typescript
import { MathUtils } from './math';
console.log(MathUtils.add(5, 3)); // 错误:MathUtils 未从模块中导出
```
我收到错误,提示MathUtils未导出。如果我在 `namespace` 前添加 `export`,则会收到另一个错误:"Namespace 'MathUtils' cannot be used"