避免對函數參數的修改


在函數體中修改函數參數時,ESLint是這樣提示的:
Assignment to property of function parameter 'options'.(no-param-reassign)


錯誤的寫法:

const makePerson = function (favoriteColor, name, age) {
    if (arguments.length < 3) {
        favoriteColor = "green";
        name = arguments[0];
        age = arguments[1];
    }

    return {
        name: name,
        age: age,
        favoriteColor: favoriteColor
    };
};

正確的寫法:

const makePerson = function (favoriteColor, name, age) {
    if (arguments.length < 3) {
        return {
            name: arguments[0],
            age: arguments[1],
            favoriteColor: "green"
        }
    }
}

當需要使用修改過后的函數參數時,將函數參數復制一份進行修改使用。
錯誤的寫法:

const requestInterceptor = (url: string, options: any) => {
  if (url !== "/api/getToken") {
    options.headers.Authorization = getToken()
  }
  return {url, options}
}

正確的寫法:

const requestInterceptor = (url: string, options: any) => {
  const retOptions = options
  if (url !== "/api/getToken") {
    retOptions.headers.Authorization = getToken()
  }
  return {url, retOptions}
}

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM