라벨이 인자인 게시물 표시

TypeScript Type 선언9 - never

이미지
 안녕하세요 . 이번에는 새로운 타입인 never에 대해서 알아보겠습니다. never는 그 뜻에서 절대로라는 뜻입니다. 즉 return값이 없다는 것입니다. 그럼 아래 코드를 보도록 하겠습니다. // 에러를 임의로 생성하는 함수 function createError ( message : string , code : number ){ // throw를 이용하여 error를 임의로 준다. throw ({ message , errorCode : code }); } // createError를 사용하여 임의로 에러를 발생 createError ( 'server error' , 500 );  위 코드를 보면 'createError'는 2개의 변수를 받습니다. message와 code입니다. 하지만 출력은 없습니다. 단지 throw 구문을 이용하여 에러를 출력합니다.   마지막에 createError('server error', 500)을 이용하여 에러를 생성한 결과는 아래와 같습니다. 그렇다면 createError의 return값은 있을까요? 사실 없습니다. try,catch구문을 사용하지 않는이상 사실상 createError함수가 실행되면 다음에 나오는 코드들은 무시가 되고 바로 에러를 출력하게 됩니다. // 에러를 임의로 생성하는 함수 function createError ( message : string , code : number ) : never { // throw를 이용하여 error를 임의로 준다. throw ({ message , errorCode : code }); } // createError를 사용하여 임의로 에러를 발생 createError ( 'server error' , 500 );  'never'가 없으면 기본값으로 'void'가 출력 type으로 지정이 됩니다. 하지만 never가 더 정확합니다. 실제로 c...

TypeScript 변수 선언8 - unknown;

이미지
 안녕하세요. 이번에는 unknown이라는 타입을 알아보겠습니다. 한글로 해석하자면 "알수없음"이라는 뜻인데 말 그대로 무엇이 들어갈지 알수 없다는 뜻입니다. // input에 무엇이 들어올지 알수 없는 경우 let input : unknown ; input = 9 ; // input에 Number가 들어감 input = { object : "hello" } // input에 Object가 들어감 console . log ( input ); // 가장 마지막에 들어간 변수 출력 위 코드에서 input 변수에 type를 unknown으로 지정했습니다. 다음에는 숫자 9를 입력하고 다음 object를 지정했음에도 에러가 발생하지 않았습니다.  console.log에 출력된 결과를 보면 마지막에 입력이 된 object가 출력됬음을 알수 있습니다. 그렇다면 type이 지정된 변수도 저장이 가능할까요? // input에 무엇이 들어올지 알수 없는 경우 let input : unknown ; let str : string = "hello" ; input = 9 ; // input에 Number가 들어감 input = { object : "hello" } // input에 Object가 들어감 input = str ; // str변수의 문자열을 input에 입력 console . log ( input ); // 가장 마지막에 들어간 변수 출력 제대로 출력됨을 확인할수 있습니다. 

TypeScript 변수 선언7 - function(함수), callback function

이미지
  이번 글에는 저번과 조금 다르게 function에 콜백함수를 넣겠습니다. 콜백함수또한 TypeScript에서 타입을 지정을 할수 있습니다. // call back함수를 사용하는 함수 function addAndHandle ( n1 : number , n2 : number , cb : ( num : number ) => void ) : void { const result = n1 + n2 ; cb ( result ); // call back함수 사용 } 위 코드는 3개의 인자를 받습니다. 2개의 number와 1개의 콜백함수 입니다. 이제 이전 글에서와 같이 콜백함수에 대한 type도 정의할수 있습니다. 콜백함수는 1개의 인자(number)를 받을수 있고 return값은 void입니다. 코드를 확인하면 2개의 숫자를 더한후 콜백함수의 인자로 사용하는 것을 알수 있습니다. const app = ( num1 : number ) => { const result = num1 * num1 ; console . log ( "num1의 제곱근 : " , result ); } 이제 임의의 콜백함수를 만들었다. 위 코드에서 인자를 제곱한후 콘솔log로 출력한다. 간단하지만 addAndHandle의 콜백함수 타입과 같다. 위와 같이 node에서 실행하면 console.log로 출력되는 것을 확인할수 있습니다. // Arrow Function을 콜백으로 사용해도 동일한 결과가 나옴 addAndHandle ( 5 , 2 ,( result ) => { result *= result ; console . log ( "num1의 제곱근 : " , result ) })

TypeScript 변수 선언6 - function(함수), 변수 선언 및 에러

이미지
 안녕하세요. 이번에는 이전시간때 배웠던 함수를 사용할때 발생할수 있는 오류와 이를 해결하는 방법에 대해서 알아보겠습니다. // 2개의 수를 받아서 합친 값을 return 한다. function addTwoNumber ( num1 : number , num2 : number ) : number { let result : number ; result = num1 + num2 ; return result ; } // 한개의 숫자를 받아서 "Result : [num]"으로 출력 function printString ( num : number ) : string { console . log ( "Result : " , num ); return ( "Result : " + String ( num )); } // addFunction을 선언한다. let addFunction ; // addFunction에 addTwoNumber를 지정한다. addFunction = addTwoNumber ; console . log ( addFunction ( 3 , 4 )); // 7로 정상출력 위 코드는 2개의 간단한 함수와 addFunction이라는 변수를 사용하는 예제입니다. 위 예제에서 addFunction은 addTwoNumber로 선언이 되고 2개의 인자가 입력되면 정상적으로 결과가 나오는 것을 알수 있습니다.  // addFunction을 선언한다. let addFunction ; // addFunction에 addTwoNumber를 지정한다. addFunction = addTwoNumber ; addFunction = 5 ; // 에러발생 : number 5로 선언 console . log ( addFunction ( 3 , 4 )); // 에러 발생 이제 'addFunction = addTwoNumber;' 아래쪽에 코드를 하나 더 추가...