在函數體中修改函數參數時,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}
}
參考:
