순수함수란?

developer.do·2023년 5월 26일
0
post-custom-banner
  • 순수함수는 독립적으로 유일하게 혼자서만 동작하는 함수이다.
  • 외부의 환경에 의존하지 않는다.
  • input과 output이 있어야한다.
  • 종속이 없어야한다.
  • 필요한 것들은 파라미터로 받는다.
  • 작아야한다.
  • 쉽게 유추가 가능해야한다.
  • 재사용성이 올라간다.

interface ITodo{
id: number
text:string
done:boolean
}

interface IpageOption{
limit:number
page:number
}
const todolist = ref<ITodo>([])
const pageOption = reactive<IPageOption>({
limit:10,
page:1,

})


const getTodoList = () => {
const res = axios.get('/api/vi/todo',pageOPtion.value)

const todos = [
{id:1,text:'buy a car', done:false}
{id:2,text:'buy a bus', done:false}
]
todolist.value = todos
}
getTodoList()

pageoption과 todolist의 종속성을 가지고 있기 때문에 이건 순수함수가 아니다.

아래는 순수함수로 만들어본 코드입니다.


interface ITodo{
id: number
text:string
done:boolean
}

interface IpageOption{
limit:number
page:number
}
const todolist = ref<ITodo>([])
const pageOption = reactive<IPageOption>({
limit:10,
page:1,

})


const getTodoList = (pageOption : IpageOption):ITodo[] => {
const res = axios.get('/api/vi/todo',pageOPtion.value)

const todos = [
{id:1,text:'buy a car', done:false}
{id:2,text:'buy a bus', done:false}
]
return 
}
todoList.value = getTodoList(pageOption)

pageoption과 todolist의 종속성을 가지고 있기 때문에 이건 순수함수가 아니다.

실행하는 곳에서 사용하는 옵션값을 실행하는 곳에다가 넣었습니다.
input, output만 정했다.

post-custom-banner

0개의 댓글