您正在学习的是试看内容,报名后可学习全部内容
报名课程
运用typescript进行node.js后端开发精要
相关视频:
特点
以实战编程为主线,来讲解typescript语言的要点,内含实践中个人的独特见解。本视频适合typescript的初学者,是我实战视频的先导课程。
课程大纲
- 开发运行环境的配置
以hello world程序讲解
- 自动编译与自动运行监测
- tslint规则配置
以统一计算各种图形面积实例讲解
- 各种静态类型说明
- vscode中进行程序跟踪与调试
- 全局变量的声明与初始化
- 如何用bluebird替换内置的Promise对象
- 类的编写
- 面向对象三个原则(封装、继承、多态)的实例说明
- 接口的使用与实战
- 模板的知识讲解
- 函数式编程思想初步探讨
- 异步处理流程中的一个经验讲解
课程摘要
通过实际项目来学习Typescript。项目需求:统一处理不同图形(圆形、长方形、矩形等)的面积计算。
面向对象三大原则
1.Circle类讲解数据封装概念,将半径与名称封装在类内部,并提供访问方法
export default class Circle {
private r: number
private name: string
constructor(r: number) {
this.r = r
this.name = 'Circle'
}
getName(): string {
return this.name
}
area(): number {
return Math.pow(this.r, 2) * PI
}
}
2.长方形与矩形讲解继承概念
//rectangle.ts
export default class Rectangle {
private a: number
private b: number
private name: string
constructor(a: number, b: number, name?: string) {
this.a = a
this.b = b
if (name === undefined)
this.name = 'Rectangle'
else
this.name = name
}
getName(): string {
return this.name
}
area(): number {
return this.a * this.b
}
}
//square.ts
export default class Square extends Rectangle {
constructor(a: number) {
super(a, a, 'Square')
}
}
3.实例统一处理不同的形状一起计算面积,讲解多态概念
let shapes = Array<any>()
shapes.push(new Circle(2))
shapes.push(new Rectangle(5, 4))
shapes.push(new Square(3))
shapes.forEach((element) => {
console.log(`shape name: ${element.getName()}; shape area: ${element.area()}`)
})
接口概念阐述
加入接口,规范形状对外部分操作要求,让错误提早到编译阶段被发现
export default interface IShape {
getName(): string;
area(): number
}
函数式编程讲解
用实例来说明怎样理解函数是一等公民,去掉我们习以为常的函数外层包裹
let printData = function(err: any, data: string): void {
if (err)
console.log(err)
else
console.log(data)
}
let doAjax = function (data: string, callback: Function): void {
callback(null, data)
}
//我们习以为常的使用方式
doAjax('hello', function(err, result){
printData(null, result)
})
//真正理解了函数是一等公民后,你会这样用
doAjax('hello', printData)
异步处理中的经验分享
在实践过程,处理异步调用容易误解的一个重要概念,异步函数执行的具体流程是什么样的?
let pf = function(data: string, n: number, callback: Function) {
console.log(`begin run ${data}`)
setTimeout(() => {
console.log(`end run ${data}`)
callback(null, data)
}, n)
}
let p = Promise.promisify(pf);
(async () => {
let ps = Array<any>()
ps.push(p('1111', 2000))
ps.push(p('2222', 1000))
ps.push(p('3333', 3000))
await Promise.all(ps)
})()
适合人群
- Typescript初学者,想加入前后台编程的行列,逐步成为全栈开发者
- 想了解多范型编程思想,从实战角度来学习编程思维的人
- 想在团队协作中使用Typescript,规范代码编写,使团队协作更融洽的人
- 熟练前端开发者,想步入后端编程的行列
相关视频课程
运用typescript进行node.js后端开发精要
nodejs实战之智能微服务快速开发框架
JSON-ORM(对象关系映射)设计与实现
Koa2封装数据库高级操作
蜘蛛实时爬取数据提供图书信息微服务
资源地址
凝胶(gels)项目: https://github.com/zhoutk/gels
视频讲座资料: https://github.com/zhoutk/sifou
个人博客: https://segmentfault.com/blog...