2015-10-21 96 views
0

我有這樣的代碼在這裏:es6中私有變量(前導下劃線)的等價物?

getData(value, index) { 
    const {responseMetadata, responseData} = this.getResponseDatum(); 
    return responseData.get(index).get('code').toUpperCase(); 
    } 

eslint報告錯誤:

19:12 "responseMetadata" is defined but never used 

在Python中我可以沉默的這種類型的錯誤由變量重命名爲_responseMetadata。 es6中是否有等價物?

+0

爲什麼你需要定義它如果它沒有被使用?它沒有JS中的錯誤有沒有使用的東西... – dandavis

+0

它是'getResponseDatum'的函數簽名,它返回一個字典。有時我們不能隨意更改某些API。 –

+1

簽名不需要填寫'const responseData = this.getResponseDatum()。responseData;'和'const {responseData} = this.getResponseDatum();'兩者都可以工作... – dandavis

回答

2

如果你不需要的變量,只是不創建它:

const {responseData} = this.getResponseDatum(); 

一個解構賦值並不需要匹配返回對象的所有屬性。

在你的情況,因爲你只需要一個財產,不多次使用它,實際上沒有多少理由使用解構或變量都:

getData(value, index) { 
    return this.getResponseDatum().responseData.get(index).get('code').toUpperCase(); 
}