typescript系列 --- 常用技能点之我见
1, 特点: a: 面向对象的编程(oop), 封装, 集成和多肽, 比如说类/接口和模块 b: 嵌入es6的新特性, 提升代码的简洁性及可读性 c: 跨平台, 支持window/macOs/linux 2, 优势: a: 可读性强,复用性高,语法混乱较js更少 b: 调试更便捷,因为是在代码编译之前就会报出相应的错误 c: 跨平台 3, 接口: interface关键字, 常用于定义变量或者函数参数及返回值校验
4, 类: 相关对象的属性/方法的集合,可以用继承和实现. 关键字有public. private. protected a: public: 在类里边/子类中/类外边(实例化)进行访问 b: private: 在类里边/子类中进行访问 c: protected: 在类里边进行访问 d: 类也可以当作接口使用, 引用官方文档的一句话就是: 类定义会创建两个东西, 类的实例类型和一个构造函数。 因为类可以创建出类型,所以你能够在允许使用接口的地方使用类。 5, 接口和类的关系: a: 接口可以继承接口, 接口可以继承类 b: 类可以继承类, 但是不能继承接口 c: 类可以实现接口, 类可以实现类 d: 接口不可以实现接口,也不能实现类
6, 模块: 变量. 函数. 类. 接口的集合 7, 命名空间: 关键字namespace, 为避免项目过程中, 类. 接口或者方法名相互冲突或者被相似的名称所迷惑,或者文件中的方法存在依赖关系的时候文件过大,导致项目可读性降低,代码质量下降所产而产生 基本语法: (第二种会更常用一些, 类似于module) namespace Name { export class Http {} } 或者 export namespace Name { export class Http() export function getData() {} } * **: namespace下还有export, export在这里用来表示哪些功能是能够外部访问的 第一种: 第二种: (更常用)
** 文件太大,而需要做多分离处理, 可以参考ts
11: Ts中的重载: 两个名称相同但参数/返回类型不同的函数, 两个函数必须接受相同数量的参数(ts多态的一种),在调用时,会根据参数及返回类型的不同,而执行对应的函数内容. 12: 装饰器: 通过在不同位置使用@符号+装饰器名称(类似函数), 来更改相对应的状态(目前处于实验性阶段-将来可能会改变,谨慎使用, 后面会单独抽出来进行讲解)
如有不够严谨的地方,还望指正包涵,谢谢
