typescript 命名空间-TypeScript 中的命名空间和模块化示例分析

2023-08-23 0 3,448 百度已收录

TypeScript 中的命名空间模块化示例分析

本文讲解《TypeScript 中的命名空间模块化实例分析》,希望能够解决相关问题。

1. 模块

TypeScript 与 ECMAScript2015 相同,任何包含顶级导入或导出的文件都被视为模块

相反typescript 命名空间,如果文件没有顶级导入或导出声明,则其内容被视为全局可见

例如我们在TypeScript项目下构建一个文件1.tstypescript 命名空间,并声明一个变量a,如下:

const a = 1

然后在另一个文件中声明一个变量a,此时会出现错误信息

提示重复声明一个变量,且所在空间为全局

如果需要解决这个问题,可以通过import或者export导入模块系统,

如下:

const a = 10;
export default a

在TypeScript中,export关键字可以导入变量或者类型,用法与es6模块一致。

如下:

export const a = 1
export type Person = {
    name: String
}

通过import引入模块,如下:

import { a, Person } from './export';

2. 命名空间

命名空间最明确的目的之一就是解决重复名称的问题

命名空间定义了标识符的可见范围。 一个标识符可以定义在多个命名空间中,并且它在不同命名空间中的含义是无关的。

这样,任何标识符都可以在新的命名空间中定义,并且它们不会与任何现有的标识符冲突,因为现有的定义在其他命名空间中

TypeScript中的命名空间是使用namespace来定义的,句子格式如下:

namespace SomeNameSpaceName {
   export interface ISomeInterfaceName {      }
   export class SomeClassName {      }
}

上面定义了一个命名空间SomeNameSpaceName。 如果我们需要外部调用SomeNameSpaceName中的类和套接字,我们需要在类和套接字中添加export关键字。

使用方法如下:

SomeNameSpaceName.SomeClassName

命名空间本质上是一个对象,它的作用是将一系列相关的全局变量组织成对象的属性,如下:

namespace Letter {
  export let a = 1;
  export let b = 2;
  export let c = 3;
  // ...
  export let z = 26;
}

编译成js如下:

var Letter;
(function (Letter) {
    Letter.a = 1;
    Letter.b = 2;
    Letter.c = 3;
    // ...
    Letter.z = 26;
})(Letter || (Letter = {}));

三、区别

《TypeScript 中的命名空间与模块化实例分析》的介绍到此结束。 希望大家多多支持编程宝库。

下一篇:JS微后端MicroApp如何使用编程技术和程序设计

如何使用 JS Microbackend MicroApp:本文讲解了《如何使用 JS Microbackend MicroApp》,希望能够解决相关问题。 1.简介 MicroApp是“京东零售”团队将于2021年7月发布的微后端框架,但它放弃了SingleSPA的实现理念,...

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript 命名空间-TypeScript 中的命名空间和模块化示例分析 https://www.wkzy.net/game/144945.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务