React 扩展
TypeScript 中的类与接口
TypeScript 中的枚举类型详解
本文以活动状态为例介绍 ts 中的枚举类型
js 定义
1 | const statusObj = { |
ts 枚举
枚举中默认值为下标,即 index 值,从 0 开始
TypeScript 中的泛型
泛型的定义
泛型:软件工程中,我们不仅要创建一致的定义良好的 API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
在像 C#和 Java 这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。
通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)
只能返回 string 类型的数据
1 | function getData(value: string): string { |
同时返回 string 类型 和 number 类型 (代码冗余)
TypeScript 中的联合类型和类型保护
本节介绍 ts 中的联合类型和类型保护的几种方法
1 | interface CustomModel { |
as 断言
1 | function judgePeopleAs(people: CustomModel | MerchantModel) { |
in 断言
toFixed()方法的坑
toFixed()方法的坑
javascript 中 toFixed 使用的是银行家舍入规则。
银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。
简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
但是不论引入 toFixed 解决浮点数计算精度缺失的问题也好,它有没有使用银行家舍入法也罢,都是为了解决精度的问题,但是又离不开二进制浮点数的环境,但至少他帮助我们找到了问题所在,从而让我们有解决方法。
四舍五入并不是真正的四舍五入
Egg.js
介绍
Egg.js 是《阿里旗下产品》基于 Node.js 和 Koa 是一个 Nodejs 的企业级应用开发框架。 可以帮助发团队和开发人员降低开发和维护成本。
Express 和 Koa 是 Node.js 社区广泛使用的框架,简单且扩展性强,非常适合做个人项 目。但框架本身缺少约定,标准的 MVC 模型会有各种千奇百怪的写法。Egg 按照约定进行 开发,奉行『约定优于配置』,团队协作成本低。
Egg.js 基于 Es6、Es7 以及 Typescript、Koa2 使得 Nodejs 具有更规范的开发模式、更低 的学习成本、更优雅的代码、更少的开发成本、更少的维护成本。为企业级框架而生。
特性
- 提供基于 Egg 定制上层框架的能力
- 高度可扩展的插件机制
- 内置多进程管理
- 基于 Koa 开发,性能优异
- 框架稳定,测试覆盖率高
- 渐进式开发
GET、POST、PUT、DELETE的区别
git 提交代码流程
因使用了 git/svn 等代码版本工具,对于无用代码必须及时删除,例如:一些调试的
console
语句、无用的弃用功能代码。
- add -> commit -> pull -> merge -> push
1 | git add . // 添加当前目录的所有文件到暂存区 |
- add -> stash -> pull -> stash apply/pop -> merge -> commit -> push
1 | git add . // 添加当前目录的所有文件到暂存区 |