[英]Assignment to property of function parameter (no-param-reassign)
我有這個 function 雖然我的工作很好,但我收到 ESLint 錯誤說
57:5 error Assignment to property of function parameter 'result' no-param-reassign
66:5 error Assignment to property of function parameter 'result' no-param-reassign
我不確定如何正確解決
export const fn = article => article.categoryValueDtoSet.reduce((result, item) => {
if (item.language) {
const language = item.language.languageValue;
const category = item.categoryValue;
result[language] = category;
}
return result;
}, { it: undefined, de: undefined, en: undefined );
我做了一些研究,似乎我需要使用Object.assign
並且我嘗試過,但可能做錯了。 我應該如何寫我的 function 才能解決我的問題?
這是一個常見的 ESLint 問題,經常出現在舊代碼庫中。 您已經修改了作為參數傳遞的result
變量。 這種行為是規則禁止的。
要解決它,請將參數復制到臨時變量並對其進行處理:
export const fn = article => article.categoryValueDtoSet.reduce((res, item) => {
const result = {...res}; // if result is object
// const result = [...res]; // if result is array
// Rest of your code can work without change
}
注意: object 擴展運算符是Object.assign()
的糖語法。 為簡單起見,它和數組副本在這里都不深,並且可能會導致副作用,因為您仍在訪問源 object 或數組的原始單個元素。 更喜歡使用深層副本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.