TS-namespace(命名空间)#记录

news2024/9/21 7:31:23

一、命名空间

1、ts 中的 “命名空间” 就是之前的 “内部模块”,任何使用 module 关键字来声明一个内部模块的地方都应该使用 namespace 关键字来替换。

// ts 中的“内部模块” (废弃)
module X {   }

// ts 中的“命名空间” (推荐)
namespace X {   }

2、export 关键字

使用 export 关键字修饰需要在命名空间之外访问的成员如:接口和类

// a.ts
namespace Shape {
    export interface Person{
        name:string
        age:number
    }
}

3、一个命名空间可以在多个文件中共享

//b.ts

namespace Shape {
    export interface Zoom{
        name:string
        age:number
    }
}

4、三斜线指令

用于声明文件之间的依赖关系,仅可放在包含它的文件最顶端,三斜线指令的前面只能出现单行或多行注释;如果出现在一个语句或声明之后,就会被当作普通的单行注释,并且不具有特殊的含义。

//方法一:
/// <reference path="a.ts" />
//方法二:
//import './a'

const people:Shape.Person = {
    name:'张三',
    age:18
}


console.log(people) // {name:'张三',age:18}

5、别名

可以给常使用的对象起一个短的名字,方便自己使用

namespace ShapeA{
    export namespace ShapeB{
        export class Person{...}
        export class Zoom{...}
    }
}

//如果我们要使用Person这个类我们需要
new ShapeA.ShapeB.Person()

//但是上述代码有点太长了,我们可以使用 import 简化代码:

import shape = ShapeA.ShapeB

new shape.Person()

6、多文件的命名空间

// a.ts
namespace A {
  export interface IA {
    name: string;
    do(): void;
  }
}

// b.ts

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

namespace B {
  export class IB implements A.IA {
    name: string;
    constructor(newName: string){
      this.name = newName
    }
    do() {
      console.log(`${this.name}:做些什么`);
    }
  }
}

//index.ts
import { B } b from "./b";

const bInstance = new B.IB("B");
bInstance.do(); // 输出:B:做些什么

二、合并命名空间

1、命名空间中导出的成员是不可以重复定义的

// a.ts 

namespace Shape {
  const aa = 111;

  export function aaFuc() {
    console.log(aa)
  }
}


// b.ts

namespace Shape {
  const bb = 222;

  export function aaFuc() {
    console.log(bb)
  }
}

2、合并命名空间和函数(注意:命名空间与函数或者类合并时,必须要放在函数或者类的后面,否则会报错)

function A() {}

namespace A{
  export let strA = 'aaa';
}

console.log(A.strA);  // aaa

3、合并命名空间和类(相当于给类添加了静态属性)

class B {}

namespace B{
  export let bb= 'bbb';
}

console.log(B.bb);  // bbb

4、合并枚举(合并命名空间与枚举,相对于给枚举添加了属性。)

// 注意命名空间与枚举的位置
namespace Color {
  export function mix() {}
}

enum Color {
  Red,
  Green,
  Blue
}

console.log(Color);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1616938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统启动修复和SYSTEM丢失损坏故障处理

系统启动修复和SYSTEM丢失损坏故障处理 一、问题描述 你的电脑/设备需要修复。无法加载应用程序或操作系统&#xff0c;原因是所需文件丢失或包含错误。 文件:\Windows\system32\winload.exe 错误代码: 0xc000000e 二、问题分析 1.查询winload.exe是win7或者win10以上系统…

NX二次开发UF_LAYER(图层相关操作)常用函数

目录 一、概述 二、函数的介绍 2.1 UF_LAYER_ask_category_info &#xff08;查询图层类别信息&#xff09; 2.2 UF_LAYER_ask_category_tag&#xff08;查询图层类别TAG&#xff09; 2.3 UF_LAYER_ask_status&#xff08;查询图层的状态&#xff09; 2.4 UF_LAYER_ask_wo…

护眼灯到底有用吗?实用护眼灯十大品牌推荐

护眼灯有用吗&#xff1f;答案无疑是肯定的。选购到一款合适的护眼台灯&#xff0c;益处多多。这些台灯经过精心设计&#xff0c;运用变频电子镇流器技术&#xff0c;显著提高了光线的频率&#xff0c;使之远超人眼的反应速度&#xff0c;从而有效缓解视觉疲劳。此外&#xff0…

适用于手机蓝牙的热敏晶体FA1612AS

EPSON推出的一款1612小尺寸无源热敏晶体:FA1612AS。FA1612AS的额定频率为38.4Mhz的晶体单元&#xff0c;采用无铅材料&#xff0c;符合ROHS标准&#xff0c;内置热敏电阻&#xff0c;可用于移动电话&#xff0c;蓝牙等。热敏晶体FA1612AS的产品特性:额定频率:38.4MHZ外部尺寸规…

Git 仓库内容操作

Git 仓库内容操作 | CoderMast编程桅杆Git 仓库内容操作 添加文件到暂存区 使用如下指令将工作区的文件添加到暂存区&#xff0c;告诉 Git 在下次 commit 时哪些文件做出了修改。 commit 指令详看后续 添加一个或多个文件到暂存区&#xff1a; 添加指定目录到暂存区 添加当前目…

山海鲸电力看板:运维数据一目了然

在信息化高速发展的今天&#xff0c;电力行业的运维管理也迎来了前所未有的变革。山海鲸可视化智慧电力运维可视化看板&#xff0c;以其独特的数据整合能力和直观的可视化效果&#xff0c;成为了电力行业运维管理的得力助手&#xff0c;为电力的稳定运行提供了强大的技术支撑。…

namesilo注册与域名购买教程

namesilo 是目前价格较便宜的国外域名平台&#xff0c;Paypal、Visa 等多种付款方式&#xff0c;还可以免费使用域名隐私保护&#xff0c;性价比非常之高。 1. 访问namesilo.com并注册用户账号。 邮箱可以填 QQ 邮箱&#xff0c;国家选择 China&#xff0c;注册信息尽量真实。…

开发同城O2O跑腿系统源码:构建高效便捷的本地服务平台教程

为了满足用户对便捷的需求&#xff0c;今天我们将一同探讨如何开发一个高效便捷的同城O2O跑腿系统&#xff0c;以构建一个功能全面、操作简单的本地服务平台。 一、确定需求和功能 在开发同城O2O跑腿系统之前&#xff0c;首先需要明确系统的需求和功能。用户可以通过该系统发布…

Mamba模型原理与代码精讲

课程链接&#xff1a;Mamba模型原理与代码精讲_在线视频教程-CSDN程序员研修院 Mamba模型是最近提出的可匹敌甚至超越Transformer的前沿序列模型。 Mamba引入了选择性状态空间模型(SSM), 允许SSM参数成为输入的函数&#xff0c;使得模型能够根据输入token沿着序列长度维度选择…

Ubuntu下使用VisualStudioCode进行Java开发

0-1开始Java语言编程之路 一、Ubuntu下Java语言环境搭建 二、Ubuntu下Docker环境安装 三、使用Docker搭建本地Nexus Maven私有仓库 四、Ubuntu下使用VisualStudioCode进行Java开发 Visual Studio Code 下载 点击这个链接Visual Studio Code&#xff0c;进入VisualStudioCode的…

未来已来:解锁AGI的无限潜能与挑战

未来已来&#xff1a;解锁AGI的无限潜能与挑战 引言 假设你有一天醒来&#xff0c;发现你的智能手机不仅提醒你今天的日程&#xff0c;还把你昨晚做的那个奇怪的梦解释了一番&#xff0c;并建议你可能需要减少咖啡摄入量——这不是科幻电影的情节&#xff0c;而是人工通用智能…

ubuntu apt update:The repository ‘xxx‘ is not signed.报错解决办法(未解决)

文章目录 报错原因及解决办法 报错 rootjax:~# apt update Get:1 file:/var/cuda-repo-l4t-11-4-local InRelease [1575 B] Get:2 file:/var/cudnn-local-repo-ubuntu2004-8.4.1.50 InRelease [1575 B] Get:1 file:/var/cuda-repo-l4t-11-4-local InRelease [1575 B] Get:2 …

C/C++ 入门(7)string类(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 请多多指教&#xff01; 目录 一、标准库中的string 1、了解 2、string类常用接口说明 1、常见的构造函数 2、容量操作 ​编辑 3、访问及遍历操作 4、修改操作 5、非成员函数 二、string类实现 …

电脑回收站恢复,3个靠谱方法(2024版)

“想问问大家&#xff0c;回收站里丢失的文件还能恢复吗&#xff1f;我一不小心就把电脑回收站里的重要数据丢失了&#xff0c;现在不知道怎么操作才能恢复它了。希望大家帮帮我。” 在日常使用电脑的过程中&#xff0c;回收站是我们经常打交道的一个功能&#xff0c;它能帮助我…

【Python创建专属二维码】

1、在PyCharm | Settings | Python Interpreter中添加PDL、PILLOW(注意解释器版本) 2、代码 from PIL import Image import qrcodedef main():# QRCode&#xff08;&#xff09;创建一个对象&#xff1a;qr qrcode.QRCode(version5, error_correctionqrcode.constants.ERROR_…

前端框架技术革新历程:从原生DOM操作、数据双向绑定到虚拟DOM等框架原理深度解析,Web开发与用户体验的共赢

前端的发展与前端框架的发展相辅相成&#xff0c;形成了相互驱动、共同演进的关系。前端技术的进步不仅催生了前端框架的产生&#xff0c;也为其发展提供了源源不断的动力。 前端的发展 前端&#xff0c;即Web前端&#xff0c;是指在创建Web应用程序或网站过程中负责用户界面…

Docker之注册中心的使用与操作

一、Docker注册中心与仓库 Reastry 可译为注册中心或注册服务器&#xff0c;是存放仓库的地方&#xff0c;一个注册中心往往有很多仓库。Docker默认的注册中心是Docker Hub&#xff0c;其可以通过浏览器访问&#xff0c;也可以使用docker search命令访问。 仓库是集中存放镜像…

[图解]软件开发中的糊涂用语-04-为什么要追究糊涂用语

0 00:00:00,030 --> 00:00:05,620 今天呢&#xff0c;我们来说一个为什么要追究糊涂用语的问题 1 00:00:06,310 --> 00:00:06,548 2 00:00:06,548 --> 00:00:11,077 大家知道我们前些天都发了好几个视频 3 00:00:11,077 --> 00:00:13,461 追究这个糊涂用语 4 00…

Python中capstone实现反汇编可执行文件

1、基本案例——disasm函数 capstone有非常简单的API&#xff0c;所以使用该框架编写工具非常简单。接下来&#xff0c;下面的代码实现的功能是反汇编一些X86二进制文件&#xff0c;并打印出其对应的汇编语句。 代码展示&#xff1a; from capstone import * #将capstone模块…

列车tcn网络mvb从站接收代码流程解析

TCN-列车通信网络概述 机车车辆通信网络&#xff08;TCN-列车通信网络&#xff09;的基本组件是在整个列车单元中提供数据通信的有线列车总线&#xff08;WTB&#xff09;和用于在车辆或固定连接车辆组&#xff08;组成&#xff09;内进行数据交换&#xff08;通信&#xff09…