TypeScript中的模块与命名空间
    		       		warning:
    		            这篇文章距离上次修改已过440天,其中的内容可能已经有所变动。
    		        
        		                
                在TypeScript中,模块和命名空间都是用来组织代码的方式,但它们有一些区别:
- 命名空间: 是一种简单的组织代码的方式,通过关键字
namespace声明。它可以包含类型、接口、变量、函数等。 - 模块: 是ES6引入的概念,是一个封装了代码和资源的文件,通过
export和import来导出和导入。 
命名空间示例代码:
namespace Geometry {
    export interface Point {
        x: number;
        y: number;
    }
 
    export function createPoint(x: number, y: number): Point {
        return { x, y };
    }
}
 
let point = Geometry.createPoint(1, 2);模块示例代码:
// math.ts
export interface Point {
    x: number;
    y: number;
}
 
export function createPoint(x: number, y: number): Point {
    return { x, y };
}
 
// main.ts
import { createPoint, Point } from './math';
 
let point: Point = createPoint(1, 2);在模块化的应用中,推荐使用模块,因为它是JavaScript的现代化实践,并且能够更好地支持大型应用的代码组织和管理。而命名空间则更多用于小型项目或者需要向下兼容旧版TypeScript的场景。
评论已关闭