TypeScript 命名空间和模块

介绍

TypeScript 1.5里术语名已经发生了变化:

  • “内部模块”现在称做“命名空间”。也就是说像 module X { } 这样的写法,在当前推荐的写法中应该是 namespace X { }

  • “外部模块”现在简称为“模块”,通常通过 importexport 关键字来实现模块间的功能共享和代码组织。

这是为了让 TypeScript 与 ECMAScript 2015(ES6)的术语保持一致,从而减少混淆并提高与主流 JavaScript 标准的兼容性。

命名空间

命名空间(Namespace)用于组织和封装相关的代码,以避免全局命名冲突,并提供更好的代码结构和模块化。

  • 基本语法
    • 使用 namespace 关键字来创建命名空间
  • 成员
    • 命名空间可以包含以下类型的成员:变量、函数、类、接口

示例:

namespace MathUtils {
   
   
  // 要使命名空间中的成员在外部可访问,需要使用 export 关键字
  export function add(a: number, b: number): number {
   
   
    return a + b;
  }

  export function subtract(a: number, b: number): number {
   
   
    return a - b;
  }
}

// 使用命名空间中的函数
let result1 = MathUtils.add(5, 3);
let result2 = MathUtils.subtract(8, 2);
console.log(result1, result2); // 8  6

在上述代码中,MathUtils 是一个命名空间,其中包含了 addsubtract 两个函数。通过 namespace 关键字创建了这个命名空间,并使用 export 关键字使其中的函数可以在命名空间外部被访问。

可以在不同的位置多次定义同一个命名空间,TypeScript 会将它们的成员进行合并:

namespace MyNamespace {
   
   
  export function function1() {
   
   
    // 实现
  }
}

namespace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值