个性化阅读
专注于IT技术分析

TypeScript使用名称空间 – TypeScript开发教程

上一章TypeScript教程请查看:TypeScript接口的用法详解

名称空间是用于对功能进行逻辑分组的一种方式,它封装了共享公共关系的特性和对象,它允许我们以更简洁的方式组织代码。

名称空间也称为内部模块。名称空间还可以包括接口、类、函数和变量,以支持一组相关功能。

与JavaScript不同,名称空间内嵌在TypeScript中。在JavaScript中,变量声明进入全局范围。如果在同一个项目中使用多个JavaScript文件,则可能会用类似的名称覆盖新用户,从而造成混淆。因此,使用TypeScript命名空间消除了命名冲突。

注意: 名称空间可以跨多个文件,并且允许使用“-outFile”连接每个文件,因为它们都是在一个地方定义的。它使代码更容易维护。

名称空间声明

我们可以通过使用namespace关键字加上namespace_name来创建名称空间。所有接口、类、函数和变量都可以使用export关键字在大括号{}中定义。export关键字使名称空间之外可以访问每个组件。我们可以像下面这样声明名称空间。

namespace <namespace_name> {  
               export interface I1 { }  
               export class c1{ }  
}  

要访问另一个名称空间中的接口、类、函数和变量,可以使用以下语法。

namespaceName.className;  
namespaceName.functionName;  

如果名称空间在单独的TypeScript文件中,那么必须使用三斜杠(///)引用语法引用它。

/// < reference path = "Namespace_FileName.ts" />  

名称空间的例子

下面的程序帮助我们理解名称空间的使用。

创建项目和声明文件

名称空间文件: studentCalc

namespace studentCalc{  
    export function AnualFeeCalc(feeAmount: number, term: number){  
    return feeAmount * term;  
    }  
}  

主文件: app.ts

/// <reference path = "./studentCalc.ts" />  
  
let TotalFee = studentCalc.AnualFeeCalc(1500, 4);  
  
console.log("Output: " +TotalFee);  

编译和执行名称空间

打开终端并转到您存储项目的位置。然后,输入以下命令。

$ tsc --target es6 app.ts  
$ node app.js  

我们将看到输出提示: studentCalc没有定义。

因此,为了正确地编译和执行上述代码,我们需要在终端窗口中使用以下命令。

$ tsc --target es6 app.ts --outfile out.js  
$ node ./out.js  

嵌套名称空间

名称空间还允许我们将一个名称空间定义为另一个名称空间。我们可以使用点(.)操作符访问嵌套名称空间的成员。下面的示例帮助我们更清楚地理解嵌套名称空间。

例子

嵌套的名称空间文件: StoreCalc

namespace invoiceCalc {   
   export namespace invoiceAccount {   
      export class Invoice {   
         public calculateDiscount(price: number) {   
            return price * .60;   
         }   
      }   
   }   
}  

主文件: app.ts

/// <reference path = "./StoreCalc.ts" />  
  
let invoice = new invoiceCalc.invoiceAccount.Invoice();   
  
console.log("Output: " +invoice.calculateDiscount(400));  

现在使用下面的命令编译并执行上面的代码。

$ tsc --target es6 app.ts --outfile out.js  
$ node ./out.js  
赞(1)
未经允许不得转载:srcmini » TypeScript使用名称空间 – TypeScript开发教程

评论 抢沙发

评论前必须登录!