문제사항
JavaScript를 비롯한 다른 언어
- JavaScipt를 비롯한 다른 언어에서는
number
또는 integer
타입들에 대해 boolean 으로 자동으로 conversion
을 해준다.
int foo = 1;
cin>>foo;
if(foo) cout<<"True"<<endl;
bool foo2=0;
bool func(){
int foo2;
cin>>foo2;
return foo2;
}
cout<<func(7)
cout<<func(0)
- 0이면
false
로 다른 모든숫자는 true
로 conversion을 해준다.
- 이를 바탕으로 boolean value에 할당도,
if /else
의 조건문으로도 , boolean type의 return도 다 허용이 된다.
TypeScript
- TS에서는 boolean value의 할당과 조건문으로의 사용은 가능하다.
- 하지만 boolean type의 return은 허용되지 않는다.
function func() : ()=> boolean =()=>{
let foo : number = 2;
return foo;
}
해결방안
- boolean type으로의 conversion 은 그다지 추천되지 않는다.
- return 쪽에 condition statement 를 작성하여 boolean 값으로 return 하게 만드는 방법이 제일 좋다.
function func() : ()=> boolean =()=>{
let foo : number = 2;
return foo > 0;
}