07 TypeScript 模块 以及模块化封装DB库 封装类似Mongoose风格的类库

本文介绍了TypeScript中的模块概念,包括官方定义和个人理解。模块内部的元素默认私有,需通过export导出才能在外部访问。示例展示了如何新建模块,如db.ts和db1.ts,并演示了import导入模块的用法,特别是default导出的使用。此外,文章还展示了如何封装数据库操作为DBHelp模块,并创建与数据库表对应的User和ArticleCate类,实现了模块化的数据库操作。
摘要由CSDN通过智能技术生成

模块的概念

模块的概念(官方):

​ 关于术语的一点说明:务必注意一点,TypeScript 1.5里术语名已经发生了变化。“内部模块”现在称作“命名空间”。 “外部模块”现在则简称为“模块”,模块在起自身的作用域里执行,而不是在全局作用域里;这意味着定义在一个模块里的类、变量、函数、接口等在模块外部是不可见的,除非你明确地使用export形式之一导出他们。相反,如果想使用其他模块导出的类、变量、函数、接口等的时候,必须要使用import形式之一导入他们。

模块的概念(自己理解)

​ 我们可以吧一些公共的功能单独抽离成一个文件作为一个模块。模块里面的变量、函数、类等默认是私有的,如果我们要在外部访问模块里的数据(变量、函数、类),我们需要通过export暴露模块里面的数据(变量、函数、类… )。暴露后我们通过import引入模块就可以使用模块里面暴露的数据(变量、函数、类… )。

在项目目录新建modules目录,新建db.ts文件,编写代码

let dbUrl: string = 'xxxxxxxxxxxxxxxxxxxx';

function getData(): any[] {
   
    console.log('获取数据库的数据1111');
    return [
        {
   
            title: 'aaaa',
            desc: 'aaaaaa'
        },
        {
   
            title: 'bbbb',
            desc: 'bbbbbb'
        }
    ]
}
function save() {
   
    console.log('保存数据成功!!');
}
// 将变量、方法都导出了
export {
    dbUrl, getData, save }

如下使用import语法导入db模块

import 中可以使用as取别名

import {
   dbUrl,getData as get,save} from './modules/db';
console.log(dbUrl);
get();// 调用了db模块中的getData方法;
save(); // 调用save方法
/* 输出:
xxxxxxxxxxxxxxxxxxxx
获取数据库的数据1111
保存数据成功!! */

export default 默认导出

每个模块都可以有一个default导出。默认导出使用default关键字标记;并且一个模块只能够有一个default导出。需要使用一种特殊的形式来导入

同样在modules目录创建db1.ts,

let dbUrl: string = 'xxxxxxxxxxxxxxxxxxxx';

function getData(): any[] {
   
    console.log('DB1,获取数据库的数据0000000000');
    return [
        {
   
            title: 'aaaa',
            desc: 'aaaaaa'
        },
        {
   
            title: 'bbbb',
            desc: 'bbbbbb'
        }
    ]
}
function save() {
   
    console.log('保存数据成功!!');
}
// 默认导出getData
export default getData;
// 使用
import getData from './modules/db1'
getData();

模块封装与使用案例

将上一节的操作数据库的代码封装在一个模块中

在modules目录新建DBHelp.ts

interface IDB<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值