码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前端权限管理方案之精确到按钮级别


    在过去的几年里,TypeScript 语言除了增长用户之外几乎什么都没做。它已被许多 Web 开发人员评为最喜欢的语言。使用纯JavaScript 代码的前端工作变得越来越少。

    但是,有时 TypeScript 并没有充分发挥其潜力。导致过多或使用过多any是最常见的错误之一。

    在本文中,我们将看到5 个 TypeScript 库,这些库将增强您的 TypeScript 体验并增加您对其静态类型的信心。这些最小的库将提高开发人员的开发效率。

    1、zod

    TypeScript 的薄弱环节是仅在编译时验证。一旦它被解析和构建,所有类型都被删除。在以下情况下,这可能会导致出现一些错误:

    • 编译器以一些假设信任开发人员(开发人员使用any, ts-expect-error, cast 等忽略类型检查…)
    • 网络返回的 REST 模式与预期不同。

    让我们看一个例子:

    interface User {name: string;email: string; 
    }
    async function fetchUser(id: string): User {const url = `/users/${id}`;const response = await fetch(url);return (await response.json()) as User; 
    } 
    
    • 1
    • 2
    • 3
    • 4

    在上面的代码中,编译器认为请求将返回一个带有 name 和email属性的 JSONUser对象。如果结果不是这样,将在生产中出现bug。但不幸的是,这些bug只能在运行时找到原因。

    我们可以定义一个模式,该zod模式可以在运行时进行验证。

    让我们看看使用zod重构后的代码:

    const UserSchema = z.object({name: z.string(),email: z.string(),
    }); 
    async function fetchUser(id: string) {const url = `/users/${id}`;const response = await fetch(url); // ✅如果校验不通过,可以通过日志抛出错误。return UserSchema.parse(await response.json());
    } 
    
    • 1
    • 2
    • 3
    • 4

    我们可以选择如何处理错误。在上面的示例中,UserSchema.parse将在运行时引发错误。

    我们也可以选择不使用safeParse方法抛出错误。它仅适合在日志记录问题而不会破坏用户体验。

    Zod 非常强大,我们还可以使用z.infer. 我们可以在整个代码中使用该方法。

  • 相关阅读:
    Azkaban环境配置-尚硅谷大数据培训
    Windows及Centos系统升级curl
    2022年最新前端面试题,持续更新
    C#语言进阶(二)—事件 第二篇(.net标准事件模型)
    环境变量与Path环境变量
    虚拟筛选、高通量实验筛选化合物库
    目标检测算法——安全帽识别数据集(附下载链接)
    【分享】集简云新功能:集简云浏览器机器人,将任意网站页面转换为API连接器
    【Leetcode】478. Generate Random Point in a Circle(配数学证明)
    SSM+基于SSM的养老管理系统 毕业设计-附源码221609
  • 原文地址:https://blog.csdn.net/qq_53225741/article/details/127814260
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号