百科问答小站 logo
百科问答小站 font logo



如何评价 Typescript 的运行时类型检测工具io-ts? 第1页

  

user avatar   Broooooklyn 网友的相关建议: 
      

我一直不知道前端里面用了 strict TypeScript 之后这种 Runtime validator 有啥用。

因为 strict TypeScript 本身已经足够 sound,runtime error 无非来自于后端 API 返回的数据与类型定义不一致。

而这个问题来自两种原因:

1. 开发的时候和后端没沟通清楚,类型写错了,该 option 的没有 option,该 | null 的没有 | null 。

2. 沟通清楚了,后端没有按约定实现接口或者后端有莫名其妙的 bug 这个字段就是为空。


对于这两种问题的解决方案,第一种应该是改接口的类型描述而不是用所谓的安全版取值方法或 validate 方法取值

第二种问题应该是通过日志监控报警,把犯罪证据留下第一时间发现问题并且把锅甩出去。


这种所谓的数据校验的 lib,徒增一大坨用来抽象数据的方法,解决不存在的问题。

如果是后端的问题让后端去改。如果是前端的接口类型定义错了应该把接口定义改对,这样 TypeScript 就能保护你不受空值问题的影响。

如果你没有日志监控报警那就去搭一个日志监控报警。




  

相关话题

  为什么前端框架 react、vue 里会出现生命周期的说法? 
  项目代码的公共部分该由谁去维护? 
  为什么前端老觉得后端简单? 
  前端拿到后端的数据,不能直接用,还要再处理,这样合理吗? 
  国内做前端年薪有上50W的吗? 
  前端拿到后端的数据,不能直接用,还要再处理,这样合理吗? 
  如何看待知乎前后端关注度差距悬殊的现象? 
  为什么后端喜欢把「男女」等枚举类型的数据转成 01? 
  fetch 的优势在哪里? 为什么有人会在前端项目中用 fetch? 
  请问一下各位大佬,js的静态方法有啥作用呀,写工具类吗,小菜鸡想不出来静态方法有啥作用? 

前一个讨论
暗黑破坏神一算是mmoRPG吗?
下一个讨论
JavaScript 最失败的设计是 arguments 吗?





© 2025-06-07 - tinynew.org. All Rights Reserved.
© 2025-06-07 - tinynew.org. 保留所有权利