首页 > 编程知识 正文

已知bug(修复已知闪退bug)

时间:2023-05-05 22:43:30 阅读:93562 作者:2685

作者

译者|弯月面、编辑责任|追求的头发

展出品| csdn (标识: csdn新闻) )。

家家有本难念的经,谁都会废寝忘食地寻求正确的步骤。

我的程序是用JavaScript写的单页面APP,只使用了JQuery和JavaScript,但这是我写的最令人心烦的程序。

然后我切换到TypeScript之后,它消灭了所有已知的错误,防止了所有类型的错误再次发生。

找出已有的“链接”问题

改为TypeScript的第一个好处是,所有方法调用参数太多或太少,或者方法名称错误,都可以很快发现(代码非常巨大,没有文档,作者也没有经验,

如果强制typescript编译器(TSC )编译所有代码,则不存在的方法将终止编译。

字符串类型的变量

程序中有比较数值型变量和数值的地方。 使用==进行比较时没有问题。 JavaScript试图将非数值数字转换为真实数字,但如果使用===进行比较(为了安全性和性能需要这样做),则‘1’==1返回false,会发生大量错误

通过用显式类型声明所有参数和变量,可以捕获此类型的所有错误,例如: number。

利用ESLint捕获愚蠢的错误

我们使用ESLint来清除TypeScript代码。 因为TSLint将在2019年的某个时候被废除。

ESLint有助于捕获可能导致问题的位置,例如,如果没有为变量指定返回值,或者可能会导致错误的问题。 因为在构建过程中添加了ESLint,所以每次构建时都会捕获lint错误。

除了ESLint之外,还使用Prettier对代码进行了格式设置,最终获得了统一的代码样式,而不增加成本。

引进班级

为了使用编译器捕获明显的错误,使用linting捕获新的错误,将JavaScript函数移动到类中,以获取更有组织、更标准化的TypeScript代码,并查找所有可重复使用、可统一的代码

由于引入了

消灭全局状态

类,因此必须将状态从全局范围移动到每个类。

除了比较明显的方法调用错误和不同数据类型的值之外,坏的状态管理似乎是第二大错误的来源。

在此项目中,没有时间部署框架(如redux ),但是可以通过将状态移动到每个类来查找和修改导致状态不正确的代码。

可测试性

将堆积如山的意大利式JavaScript代码更改为独立的类,可以为每个类创建Jest测试用例以提高安全性,提高对APP应用程序进行更改时的信心。

最终,我们发现,从开发、质量保证和最终用户的角度来看,将旧的JavaScript遗留APP移植到TypeScript中也是一项非常漂亮的措施。 这是因为附加的严格度和安全度量标准可以使APP更加稳定,并修改代码以避免破坏现有代码。

当然,我没有将APP转换为Angular,也没有添加Redux等状态管理库,但最终这个项目提前完成了,没有任何障碍,在这个过程中也解决了很多现有的错误。 因此,与希望JavaScript逐个修改错误以确保所有错误都是正确的相比,将APP转换为TypeScript可以节省时间。

虽然每个项目都有所不同,但是如果要重新组织旧的APP,强烈建议您考虑使用TypeScript。

原文: 3359 dev.to/integer man/how-typescript-squashed-all -知识- bugs-98c

正文是CSDN的翻译。 转载请注明出处。

【结束】

CSDN博客恭候您的光临。

按照我们在共享、合作、开源、技术道路上共同进步的标准,

只要你的技术足够干,内容足够扎实,共享足够积极

欢迎来到CSDN大家庭!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

  •  标签:  
  • bug