본문 바로가기

Typescript/타입 기능

(4)
Typescript - 고급 기능 타입스크립트를 사용할 때 편리한 기능을 소개합니다. Optional Chaining interface MyInfo { name: string, friends?:{ friend1: boolean, friend2: boolean } } const myInfo = { name:"개발자" } /* age의 값이 undefinded 이거나 null인경우를 체크하여 age를 출력해보자 */ // 옵셔널체이닝 미사용 - &&(논리연산자)를 이용 // myInfo.friends 값이 null, undefined, ‘’, 0, -0, NaN 이 아니라면 true 이고 아니면 false function funTest1 (myInfo) { if(myInfo.friends && myInfo.friends.friend1){ /..
기본 타입 외 여러 종류의 타입 Enum 타입 열거형으로 Enum를 사용하면 이름이 붙은 상수 셋을 정의합니다. enum타입을 사용하게 특수한 변수를 사용하게 되는경우 가독성이 좋아집니다. enum MyInfo { Name = '개발자', Age = 32 } console.log(MyInfo.Name) // result => '개발자' console.log(MyInfo.Age) // result => 32 Generic 타입 제네릭은 클래스와 함수에서 사용하는 타입을 추상화해 외부로부터 구체적인 타입을 지정합니다. 외부에서 지정된 타입이 달라도 작동하도록 범용적인 클래스나 함수를 정의할 때 편리합니다. // T는 클래스안에서 임시 타입이다. class Queue { private arr: T[] = [] push(item:T){ thi..
타입 Alias, Interface, Class 타입을 지정할 때 인라인으로 표기하는 방법외에도 Type, Interface, Class 을 이용하여 타입을 지정할 수 있다. 이 방법을 사용하면 재사용성이 높아지게 된다. Type Alias type Info = { name: string, age: number } function printMe(param: Info){ console.log(`${param.name} 의 나이는 ${param.age} 입니다.`) } printMe('개발자',32) // result => '개발자 나이는 32 입니다.' /* 함수 자체의 타입도 정의 가능 */ type FunTest = (name:string) => string function test(name: string, funParam: FunTest){ con..
타입 Assertion (명시적으로 타입을 정의) 타입스크립트가 구체적인 타입을 알 수 없는 경우가 있습니다. 이런 경우 Any를 사용해도 되지만 타입이 정해진 인수에 해당 값을 사용하려면 타입의 강제 정의가 필요합니다. 코드에서 자바스크립트의 내장 함수를 사용하여 값을 도출한경우를 예를 들어 설명드리겠습니다. function funTest(param:string){ return param } funTest(param) // param의 값이 string이 아니라면 type error 발생 funTest(param as string) // param의 값을 string으로 명시한다.