如果您编写了一些类型为and且不使用第三方库的TypeScript代码,您是否仍然需要错误处理,因为谁知道会发生什么呢?
发布于 2022-03-17 15:06:56
是。并非所有错误都与类型相关。例如,假设您有一个函数从端点执行(例如) fetch。任何数量的类型信息都不会改变您需要处理请求可能失败的事实。类似地,如果将事件通知一组侦听器,则没有多少类型信息将保护您免受其中一个侦听器意外抛出错误的影响。
我要说的是,由于我主要使用了TypeScript,所以我没有改变我所做的错误处理的数量或级别(主要是像事件处理程序这样的入口点)。我已经减少了我所做的类型检查的数量(如果参数类型说它必须是一个数字,我不会验证某个函数中的某个东西是number,这可能是我在JavaScript中所做的),但没有验证错误处理的数量。
发布于 2022-03-17 15:08:37
TypeScript帮助验证代码库本身的一致性,但是您的系统(web应用程序或其他任何东西)都有与外部世界的接口。当您在TypeScript中指定这些接口时,断言实际接口将符合其TypeScript描述,但在代码运行时根本无法保证。
另外,TypeScript不验证您正在使用的算法。举个简单的例子,它不会阻止你将一个数字除以零。它也不会验证递归函数是否具有正确的退出条件,依此类推。
总之,TypeScript帮助您更早地引发与类型相关的错误(甚至在执行代码之前),但这并不能帮助您在需要时进行正确的错误处理。
发布于 2022-03-17 14:59:54
是的你知道。有些错误不是由于不安全的代码造成的。例如,从服务器获取数据可能发生错误。
https://stackoverflow.com/questions/71514499
复制相似问题