源码地址:https://github.com/666cwh/ts
一.TS优势和缺点
优点:
1.TS可以在编写代码时快速定位问题
当js和ts同时没有传参时ts会在编辑器中报错
2.编辑器对代码提示友好程度更好
当使用参数时,js没有提示出详细参数,而ts提示出详细参数
3.更好阅读代码
js中想要获取参数中的详细值得话需要阅读代码内容,而ts中想要获取参数值得话可以直接阅读代码参数
缺点:
1增加学习成本(花时间学习)2增加研发成本(增加代码量)
二.运行环境
1.node
2.环境配置
prettier格式化插件失效时:https://segmentfault.com/a/1190000023018242
不行???自己百度!!!什么事都用教???傻*😒😒😒😒
3.全局安装ts
4.环境测试
5.简化执行命令安装
三.静态类型
例:
自定义一个Point类型,Point包括x,y两个值,x设置为num类型,y设置为str类型,定义一个常量point,将自定义Point赋值给point当y值为num类型时报错,可以通过point.x获取x的值
当变量为静态类型时,变量类型不能修改,变量上的属性和方法也不能修改
// 基础类型: null undefined stymbol boolean number string void
const count: number = 123;
const techerName: string = '程老师';
//对象类型
const teacher: {
name: string;
age: number;
} = {
name: '程老师',
age: 18,
};
//数组类型
const num: number[] = [1, 2, 3];
//类类型
class Person {}
const cheng: Person = new Person();
//函数类型
const fun: () => number = () => {
// return '程' //报错
return 123;
};
四.类型注解和类型推断
注:
五.数组和元组
六.Interface接口
1.interface接口和type类型别名的区别
instanceof与typeof区别:https://blog.csdn.net/lulu_678/article/details/88669011
2.readonly和?
3.函数参数赋值校验
直接赋值报错解决办法:
4.函数赋值方法
5.class类应用interface接口
class类:https://es6.ruanyifeng.com/#docs/class第21.22章
6.interface接口继承
7.interface定义函数
七.类
1.类的定义和继承
2.访问类型和构造器
3.静态属性,setter和getter
4.单例模式
5.抽象类
八.ts编写爬虫
1.配置
cheerio详情:请自行查阅
node不可以直接运行ts文件,只能转换成js运行
优化编译命令:
nodemon文档:自行查阅
运行流程:当改变ts文件时,'tsc -w’指令会监听到文件发生变化,并且重新编译ts文件,生成js文件,当js文件生成后nodemon会检测到js文件发生变化,会重新运行需要执行的文件
Concurrently文档:自行查阅
代码: 略
九.ts编译配置文件
tsc --init > tsconfig.json
中文文档:
https://www.tslang.cn/docs/handbook/tsconfig-json.html
https://www.tslang.cn/docs/handbook/compiler-options.html
英文文档:
https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
https://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html
注意:
直接运行tsc命令或者运行ts-node命令会执行tsconfig.json中内容,而运行 tsc 文件名(例:tsc demo.ts)就不会运行tsconfig.json内容,
十.联合类型和类型保护
1.联合类型:
2.类型保护(当出现类似于联合类型中错误时使用)
十一.枚举类型
十二.函数泛型
泛型:定义函数或者类时不给参数声明类型,而是在使用时声明类型
十三.类中泛型
泛型和any类型区别:https://cloud.tencent.com/developer/article/1683583
十四.命名空间
声明:
调用:
效果:
补充:
1