[英]“typeof” versus “in” for checking the presence of a property in an object
[英]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.