TypeScript黑魔法教学(2):开始练习体操
在学习 TS 黑魔法(类型体操),建议先把前面的 TS 基础知识学好了,再来看进阶用法。
另外,即使已经进阶到高级选手了:不要滥用工具类型,对外暴露的 API,应该尽量多手动标注函数返回值类型。契约高于实现,你写再多重复的TS代码也不会影响最终代码。
typeorm笔记1
来自神光的《Nest 通关秘籍》
NestJS笔记1
来自神光的《Nest 通关秘籍》
优雅的干掉不应该使用的if-else(JS版)
这里说的是不应该使用 if-else 的地方尽量不去写 if,而不是去掉所有的 if-else
不必要的 else 块
1 | function func(arg) { |
价值分配
有些时候不需要生命个变量,然后再赋值返回
1 | function func(arg) { |
简单值多个条件,转成对象形式
1 | function func(arg) { |
复杂条件,改用策略模式
1 | function func(arg1, arg2, arg3) { |
如果是这种复杂的条件,对象的形式就实现不了了,这没有办法了吗?
其实有个设计模式叫策略模式,先上个策略模式的代码:
1 | // js版: |
用法也很简单,比如上面的 if 示例:
1 | function func(arg1, arg2, arg3) { |
exeStrategyActions 函数会一个一个寻找条件是 true 的值,直到找到 true,然后执行传进去的回调函数,
NPM上一些好用的轮子
一些工具类:
- p-limit:promise 并发限制
- await-to-js:Async await包装器,便于错误处理
- delay:将setTimeout promise化
- yocto-queue: 简单的队列数据结构,(入队出队时间O(1))
- mitt:简单实用的事件总线工具
- autofit.js:自适应屏幕大小
- class-transformer: 将object转成class
- class-validator: 简化验证的库
- zod: 轻量级类型验证库
适合node:
- consola 日志、提示库
- chokidar:跨平台的文件监听库
- walkdir: 遍历文件夹
- fast-glob:轻量快速的遍历文件夹
一些cli工具:
- npkill:快速删除node_modules目录
- npm-check-updates:检查项目依赖更新(快捷命令ncu)
- nvm-windows:windows下的node版本管理工具(设置淘宝镜像下载更快:https://npmmirror.com/mirrors/node/)
cli
- prompts:命令行提示工具,可以用来写交互式cli
- cac: 命令行参数提示、解析工具
- mri/minimist: 命令行参数解析,mri更轻量化
SpringBoot笔记
记录一下简单使用SpringBoot的一些知识点
如何用Rust和Napi-rs在NodeJS中处理CSV文件快五倍
原文:How to process a CSV file five times faster in NodeJs with Rust and Napi rs
因为原文的文件目录和文件名比较随便,所以这里会修改一下。而且修改成适合win系统环境的代码,在ubuntu下也试过没任何问题。
TypeScript黑魔法教学(1):前置知识
在学习 TS 黑魔法(类型体操),建议先把前面的 TS 基础知识学好了,再来看进阶用法。
另外,即使已经进阶到高级选手了:不要滥用工具类型,对外暴露的 API,应该尽量多手动标注函数返回值类型。契约高于实现。