繁体   English   中英

在构建阶段检查对象属性的存在

[英]Check presence of object property during bulding phase

我正在寻找可以帮助我实现这一目标的解决方案:

如果我尝试这样做,我想在“构建”时抛出一个错误:

var ciao = {
  wow: 'ciaoooo',
}

console.log(ciao.wowe); // this should be an error because the prop does not exist

我已经尝试了Typescript并完成了工作,但仅将其用于此似乎有些过头了。 我想知道是否有ESLint的东西或其他可以帮助我解决此类问题的东西。

ESLint没有这样的规则。 很难创建一个能够捕获所有可能情况的规则。 ESLint依靠Escope来跟踪声明的变量,但是Escope不跟踪对象的属性,并且有太多的方法可以向声明的对象添加属性。

您正在寻求静态类型语言的功能。 如果您希望获得有关构建时变量的可靠信息,则需要定义接口和类型的“过大杀伤力” 但是,可以选择键入TypeScript,如果要为公共接口使用静态类型,这可能是一个很好的折衷方案。

如果要进行类型检查但又不想使用转译器,则也可以尝试Flow ,它尝试尽可能地从代码中派生类型信息。 但是,没有附加类型信息的功能非常有限。

关于您的实际问题:我认为可以使用ESLint或Babel在模块(或文件)边界内导出类型信息。 只要您在这些范围内使用该对象,静态分析就可以为您提供帮助。 但是除此之外,由于JavaScript的动态特性,我认为这是不可行的。 不幸的是,我不知道这样的规则或插件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM