百科问答小站 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 就能保护你不受空值问题的影响。

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




  

相关话题

  小程序会成为下一个 Flash 吗? 
  如何看待ry的项目deno的issue被中文刷屏的事件? 
  前端开发中,使用base64图片的弊端是什么? 
  为什么7年工作经验的前端竟然回答不出数组的flat方法? 
  如何理解 let x = x 报错之后,再次 let x 依然会报错? 
  github有没有办法前后端分两个项目,前端代码软连接到后端文件夹中? 
  代码门事件真相如何?小米是否在进行虚假营销,真实销量几何? 
  浏览器解析Html一般是边下载边渲染么?如果是边下载边渲染的话,Html又使用GZIP格式传输,如何能够做到没有完全下载就可以渲染的呢? 
  fetch 的优势在哪里? 为什么有人会在前端项目中用 fetch? 
  如何看待react被围攻?技术中立存在吗? 

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





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利