惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
Recent Announcements
Recent Announcements
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More

TypeScript

Bun 1.4,安卓平板可玩性大提升? - V2EX ts 生态有没有开源的简单的 kv 配置管理项目 你们是怎么学习 typescript 的? 用 Go 移植的 TypeScript 7 要来了 TypeScript5.9,仿佛走出草原来到了现代社会 Typescript 有没有能对接 AI 的知识库或者文档?能处理稍微复杂点的类型 typescript 如何返回一个动态对象类型 ts 有没有直接能查看最终类型的方法 TypeScript Native 预览版发布了 关于 TypeScript 装饰器和接口的问题,请教一下各位 你们 typescript 用自带枚举还是字符串枚举,感觉字符串枚举类型用起来有点不可靠啊 typescript 达人乱入 TypeScript 宣布原生移植计划,性能将提升 10 倍? #笔记#更好的 ts 重载声明方法 使用 satisfies 实现穷举类型保护 请教一个 TS 问题,不知能否实现 装饰器能不能装饰类的所有方法 TypeSciprt 类型推断,如何进一步收窄类型? TypeScript 项目打包发布到 npm,如何给方法和接口添加 dts TypeScript 类型推导真强大。 为啥下面这段代码 TS 不报错 ts 类型约束+请求参数校验+自动生成 openapi/swagger 文档,这三者目前有整合为一体的最佳实践吗 TypeScript 能不能别这么古怪,这行为什么会报错呢? 怎么每次碰到想不通的代码行都出在 TypeScript😢 这行到底哪里有问题? 低估了 typescript 的难度 前端写 nestjs 后端,用 TypeORM 时感到非常困惑,不知道是不是我的理解有问题 我列举了市面上最好的几个 TypeScript 教程, 想深入学习 TypeScript 的同学以后不用走弯路了 这样的函数类型定义在 ts 里面叫什么? typescript 如何忽略泛型参数啊? TypeScript 现在的应用场景
effect-ts
llej · 2025-03-26 · via TypeScript

effect-ts

https://effect.website/

为什么是 effect-ts

最近接触到了 Effect ts (如何看待 fp-ts 及 effect-ts 分别实施的两种风格相异的高阶类型系统?) ,顿时感觉这就是我一直追求的东西,以前写过 对于依赖注入的思考-二 等文章,Effect 完美的满足了我的需求。

ts 带来了无与伦比的类型操作,但个人想要写出一个严谨的 ts 程序,尤其是能够确保正确的错误处理和依赖处理依旧是一个很难的事情,尤其是依赖倒置。

错误处理:ts 的 catch 语句中的 error 默认类型是 unknown 。这是非常稳健的,因为事实上就是没法知道一段程序会抛出哪些错误,而 effect-ts 将错误在返回值类型中进行进行了显式标注,这样就可以知道一段程序可能会抛出哪些错误了。

依赖处理:这个和错误处理其实是一样的,就像难以预知程序将抛出哪些错误一样难以知道一段程序需要哪些依赖。effect-ts 给出了和错误处理一样的方案。

我刚刚使用 Effect 重构了 OceanPress_js,整个过程极为流畅,我对 Effect-ts 了解并不算透彻,但是一顿重构修改了特别多的地方,结果没有出现什么大 bug ,整个程序的依赖和调用都更清晰了

唯一出现的 bug 就是 ''+Effect 返回对象 这样的语句,ts 他不会报错,不然的话这波重构简直完美。这个都不算 effect 的问题是 js 的问题。

effect 速查手册

使用 runPromise 运行程序

可以使用 Context.empty().pipe(Context.add(...),...) 这样的方式组合多个依赖,然后尽量将依赖拆分的更细一些,这样方便执行小段程序而不用注入大而全的依赖