使用 TypeScript 或 Facebook 的 Flow(type) 我可以静态输入变量,例如
function add (x: integer, y: integer) { ... }
TypeScript 和 Flow 都会在 编译时捕获任何非法调用,例如
add('1',0)
。但是,当库被编译和导出时,类型就消失了。这意味着,使用该函数的库使用者不会出现错误,这可能会导致难以调试的问题。
有没有办法自动生成在运行时会抛出完全相同错误的附加代码?
每次需要进行类型检查时,我肯定可以手动放置守卫,但这感觉无聊且重复。
最佳答案
https://github.com/codemix/babel-plugin-typecheck 做你想做的事。
还有 https://gcanti.github.io/flowcheck/ 但它看起来有点被遗弃了。
我个人没有使用过任何这些库。似乎它们可能覆盖不到 100% 的 Flow 语法。
关于javascript - 如何在运行时在 JavaScript 中生成类型检查?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37209762/