typescript之模块开发
dearweb 发布:2021-07-31 15:33:47阅读:定义在一个模块里的变量、函数、类等等在模块外部是不可见的,除非你明确的使用export形式导出他们。相反,如果先使用其它模块导出变量、函数、类、接口等的时候,你必须要导入它们,可以使用import形式之一。
小编对于模块化的理解:
可以把一些公共的功能单独抽离成一个文件作为一个模块。模块里面的变量函数类等认为是私有的,如果我们要在外部访问模块里面的数据(变量、函数、类),我们需要通过export暴露模块里面的数据(变量、函数、类...),暴露后通过import引入模块就可以使用模块里面暴露的数据(变量、函数、类...)。
目录结构
db.ts代码 interface DBI<T>{ add(info:T):boolean; update(info:T,id:number):boolean; delete(id:number):boolean; get(id:number):any[]; } // 定义一个操作Mysql的数据库的类 注意:要实现泛类型接口 这个类也应该是一个泛类型 export class MysqlDb<T> implements DBI<T> { add(info: T): boolean { console.log(info) return true throw new Error("Method not implemented.") } update(info: T, id: number): boolean { throw new Error("Method not implemented.") } delete(id: number): boolean { throw new Error("Method not implemented.") } get(id: number): any[] { throw new Error("Method not implemented.") } } // 定义一个操作mssql的数据库的类 export class MssqlDb<T> implements DBI<T> { add(info: T): boolean { throw new Error("Method not implemented.") } update(info: T, id: number): boolean { throw new Error("Method not implemented.") } delete(id: number): boolean { throw new Error("Method not implemented.") } get(id: number): any[] { throw new Error("Method not implemented.") } }
index.ts代码
import {MysqlDb} from './modules/db' class User { username:string | undefined password:string | undefined } let U = new User() U.username = '李四' U.password = '12345678' let oMysql = new MysqlDb<User>(); oMysql.add(U) // {username: "李四", password: "12345678"}
最后在中端执行一下 node index 输出为
User { username: '李四', password: '12345678' }
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧