Javascript 函数存在的 lint(库中的重大更改)
Javascript lint for function existance (breaking changes in libs)
我是 'new' 到 Javascript 并且来自静态类型语言,我在没有编译器的情况下苦苦挣扎。
特别是现在我升级了一个库,该库具有重大更改(重命名方法)以检测这些更改。
我已经在使用 linter,但在调用我自己的代码的不存在函数时没有收到警告。
如何确保我的代码中使用的函数实际可用?
没有快速简便的解决方案(不幸的是),但有一些事情可以使情况更易于管理:
- 如果你的代码库不是太大,并且你有一些额外的时间可以投资让世界变得更好 :) 那么你可以考虑转换为 Typescript。对于任何规模或大或小的项目,它往往会成为一项艰巨的任务,可能可行也可能不可行
- 你的第二道(通常是第一道)防线是广泛的单元测试 - 至少,你 必须 对你有合同的所有模块接口进行单元测试(例如 public 接口、导出的函数等)最小的 "sanity check" 测试将确保模块导出您期望它导出的函数,并且函数具有正确的 "arity"(数量论据)。有很多经过实战检验的单元测试框架——Ava、Jasmine、Mocha/Chai 等等
- 在某些情况下,ESLint 可以警告您未使用的导出方法(或缺少导入)。问题是您必须积极查看 lints 才能发现问题,如果您正在更新第三方库并且它突然破坏您的代码,这可能会很困难
总结一下:
- 为所有模块接口添加单元测试(如果有时间,还可以添加更多)
- 如果项目允许,探索切换到 Typescript
希望对您有所帮助!
我是 'new' 到 Javascript 并且来自静态类型语言,我在没有编译器的情况下苦苦挣扎。 特别是现在我升级了一个库,该库具有重大更改(重命名方法)以检测这些更改。 我已经在使用 linter,但在调用我自己的代码的不存在函数时没有收到警告。
如何确保我的代码中使用的函数实际可用?
没有快速简便的解决方案(不幸的是),但有一些事情可以使情况更易于管理:
- 如果你的代码库不是太大,并且你有一些额外的时间可以投资让世界变得更好 :) 那么你可以考虑转换为 Typescript。对于任何规模或大或小的项目,它往往会成为一项艰巨的任务,可能可行也可能不可行
- 你的第二道(通常是第一道)防线是广泛的单元测试 - 至少,你 必须 对你有合同的所有模块接口进行单元测试(例如 public 接口、导出的函数等)最小的 "sanity check" 测试将确保模块导出您期望它导出的函数,并且函数具有正确的 "arity"(数量论据)。有很多经过实战检验的单元测试框架——Ava、Jasmine、Mocha/Chai 等等
- 在某些情况下,ESLint 可以警告您未使用的导出方法(或缺少导入)。问题是您必须积极查看 lints 才能发现问题,如果您正在更新第三方库并且它突然破坏您的代码,这可能会很困难
总结一下:
- 为所有模块接口添加单元测试(如果有时间,还可以添加更多)
- 如果项目允许,探索切换到 Typescript
希望对您有所帮助!