javascript - 编译时需要函数参数检查

标签 javascript

是否有在构建时和运行时在函数中强制执行参数的最佳实践方法?例如,如果我有以下功能:

    function localize(strings, key, ...args) {

        return ...
    }

我这样调用它:

    var result = localize('myKey')

我没有传递第一个参数('strings')。我想抛出一个编译错误,而不是等到运行时才得到错误。

最佳答案

因为 Javascript 没有编译,并且是动态类型的,所以除了在运行时之外,没有办法在您的示例中强制执行契约(Contract)。

但是,您可以使用 Typescript、Flow 等构建系统为您的代码添加类型注释。这些需要一个编译步骤,但是您在示例中遇到的问题会在该步骤中被两者捕获。

据我所知,如果没有它,就无法获得您想要的东西。在 vanilla javascript 中,您可以做的最好的事情是验证在 localize 函数中提供的参数,并使用日志/错误,以便在本地测试代码时可以轻松识别问题。这里重要的一点是,如果不实际运行您的代码,就无法使用 vanilla JS 捕获示例中的错误。

关于javascript - 编译时需要函数参数检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46853274/

相关文章:

javascript - 如何向对象数组添加新字段,或将一个数组中的值插入另一个数组 - JS

javascript - 使用 Javascript 中的 onblur 事件在表格底部动态添加一行(没有按钮)

javascript - Zapier - Catch Hook - JSON 数组 - 遍历数组中的每个项目

javascript - 在 JavaScript 中使用数组获取对象的值

javascript - 为字符串中的匹配添加前缀

javascript - 在 Django 上下文中传递 JSON 数据

javascript - 在python服务器端解析json

javascript - 如何使用 React + Flux 快速渲染 >10000 个项目?

php - 保存多个附件并检索它们

javascript - 是否可以将js文件中的图像动态加载到html文件中?