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"