最近在用 TypeScript 开发后端服务,遇到了一个棘手的问题:如何在运行时快速地验证请求中的数据并推导为所需的强类型变量?
直接的想法大概长这样:
不出意外,这样下去很快代码会出现很多类似判断并变得十分臃肿。经过一番搜索,发现虽然 TypeScript 允许自定义 type guard,但并不提供原生的运行时验证库(也确实不应该在 TypeScript 层面解决这个问题)。于是自己动手开发了一个工具库 power-guard ,它的语法是这样:
它提供多种内置函数,基本覆盖大部分常用的基础 /复杂类型的验证:object,array,enum,number,string,boolean,同时你可以进行自由定制来验证更为复杂的对象:
再也不用担心用户乱输入了。:-)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.