TS-模块与命名空间

1.TS中的模块

TypeScript 模块的设计理念是可以更换的组织代码。

两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的

模块使用模块加载器去导入其它的模块。 在运行时,模块加载器的作用是在执行此模块代码前去查找并执行这个模块的所有依赖。 大家最熟知的JavaScript模块加载器是服务于 Node.js 的 CommonJS 和服务于 Web 应用的 Require.js。

模块导出使用关键字 export 关键字,语法格式如下:

// 文件名 : SomeInterface.ts
export interface SomeInterface {
// 代码部分
}

要在另外一个文件使用该模块就需要使用 import 关键字来导入:

import someInterfaceRef = require(“./SomeInterface”);
import { SomeInterface } from “./test”;

export interface IPerson {
  name: string;
  age: number;
  show(): void;
}

export const obj = {
  name: "张三",
};
// 方法一
/*
import test = require("./test");
console.log(test.obj);
*/
// 方法二
import {obj} from './test'
console.log(obj)

TS的命名空间

项目开发过程中,我们会发现我们的命名是有严格规范的,我们不能随意的去起名字,但若是都采用尽量标准化的方式去命名,我们又无法避免的会造成污染,TypeScript提供了namespace 避免这个问题出现

  • 在TS1.5之前被叫做内部模块,主要用于组织代码,避免命名冲突
  • 本质就是定义一个大对象, 把变量/方法/类/接口…的都放里面
  • 通过 export 导出
  • 通过 namespace 定义
namespace A {
  export const a = 1;
}

console.log(A.a);

namespace B {
  export const b = 2;
  export namespace C {
    export const c = 3;
  }
}

console.log(B.b);
console.log(B.C.c);

import c = B.C.c

export namespace D {
  export const d = 4;
}

// import { D } from "xxxx"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值