1. 初始化ts
yarn init -y
tsc --init
2. 在tsconfig.json文件中配置
1. 配置include项
{
"include":['./src/**/*']
}
2. 配置输出文件
outdir:'dist'
3. 在src目录下创建types目录,里面放接口约束
export default interface Ibook{
isbn:string
bookName:string
price:number
status:boolean
auth:string
}
4. 在src目录下创建业务目录:business,里面放业务(CRUD)
类中使用private,public访问符来进行限定
1. 导入接口
import Ibook from "../types/ibook";
2. 创建OnLineBookLib类
export default class OnLineBookLib{
private _books!:Array<Ibook>
(1):构造函数完成初始化操作
constructor(){
this._books = [
{ isbn:'1001',
bookName:'红楼梦',
status:true,
price:100,
auth:'曹雪芹'
}
]
}
(2):列表显示
public bookList(){
if(this._books.length == 0){
return '暂无数据'
}else{
return this._books.map(item=>`${item.isbn}\t${item.bookName}\t${item.status?'可借':'已借出'}\t${item.price}\t${item.auth}\n`).join('')
}
}
(3):增加图书
//增加书籍
public addBook(book:Ibook):void{
this._books.push(book)
}
(4):删除图书
// 删除书籍
public delBook(isbn:string){
let idx = 0
this._books.forEach((item,index)=>{
if(item.isbn === isbn){
idx=index
}
})
this._books.splice(idx,1)
}
}
5. 在src目录先配置index基础文件
- 安装readline模块
yarn add readline-sync
- 安装@types/node
npm i --save-dev @types/node
- 导入OnLineBookLib类,因为需要使用类中的定义的增加,删除,借阅图书的方法
import OnLineBookLib from './business/OnLineBookLib'
- 定义一个函数用来作为UI函数,展示业务
为保证业务的循环,则需要使用while来循环业务
function initUI(){
}
while(true){
initUI()
}
- 在函数定义业务Ui展示
function initUI(){
console.log('-------蜗牛图书管理系统------------');
console.log('1、书籍列表');
console.log('2、增加书籍');
console.log('3、删除书籍');
console.log('4、借阅书籍');
console.log('请选择业务');
}
while(true){
initUI()
}
- 调用redaline进行输出台的输出与输入
这里注意的是switch接收number类型:使用~~位运算符,就是取整
function initUI(){
let op:number = ~~readline.question()
switch(op){
case 1:
console.log('蜗牛在线图书系统>书籍列表');
console.log(obl.bookList());
break;
case 2:
console.log('蜗牛在线图书系统>增加书籍');
console.log('请输入编号:');
let isbn = readline.question()
console.log('请输入名称:');
let bookName = readline.question()
console.log('请输入价格:');
let price = readline.question()
console.log('请输入作者:');
let auth = readline.question()
let book = {isbn,bookName,price,auth,status:true}
try {
obl.addBook(book)
break;
} catch (error) {
console.log('增加失败',error);
break;
}
case 3:
console.log('蜗牛在线图书系统>删除书籍');
console.log('请输入编号:');
let isbn2 = readline.question()
try {
obl.delBook(isbn2)
console.log('删除成功');
break;
} catch (error) {
console.log('删除失败');
break;
}
case 4:
console.log('蜗牛在线图书系统>借阅书籍');
console.log('请输入编号')
let isbn3 = readline.question()
try {
obl.rentBook(isbn3)
console.log('借阅成功');
break;
} catch (error) {
console.log('借阅失败',error);
break;
}
default:
console.log('输入标号有误,请检查');
break;
}
}
while(true){
initUI()
}