簡體   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