📚 타입 단언 타입 단언은 개발자가 직접 타입을 명시해 해당 타입으로 강제하는 방식. 타입스크립트를 컴파일 할 때 타입 검사를 하지 않고, 데이터의 구조도 신경쓰지 않는다. 컴파일러가 가진 정보를 무시하고 개발자가 원하는 임의의 타입을 값에 할당하고 싶을 때 사용한다. 📌 타입 단언은 왜 사용할까? 일례로 변수를 선언할 때 빈 객체에 인터페이스를 정의하면 다음과 같이 에러가 난다. 해당 객체가 Person 인터페이스와 맞게 초기화되지 않았기 때문이다. 타입 에러를 해결하는 방법으론 객체 선언 시점에 속성을 정의하면 된다. 하지만 이미 운영 중인 서비스의 코드나 누군가 만들어 놓은 코드라면 건드리기 까다로울 것이다. 이럴 때 타입 단언을 이용해서 기존 코드를 변경하지 않고도 타입 에러를 해결 할 수 있다...
📚 타입추론(Type Inference) 타입추론(Type Inference) 이란 타입스크립트가 코드를 해석하여 적절한 타입을 정의하는 동작을 의미한다. 쉽게 말하면 타입을 지정하지 않더라도 자동으로 타입을 결정해준다. 타입추론의 장점은 코드 수동으로 명시해야 하는 구문의 수를 줄여주기 때문에, 코드의 전체적인 안정성이 향상된다. 타입추론이 어떤 과정을 거치는지, 언제 타입선언을 해야할 지를 알면 불필요한 타입선언을 줄일 수 있기 때문에 잘 알아두자! 😉 📌 변수의 타입 추론 let x = 10; // x는 number 타입으로 추론됩니다. 변수는 선언될 때 초기값에 따라서 타입이 추론된다. a라는 변수가 선언될 시점에 값이 할당되지 않아 어떤 값이 들어올지 모르기 때문에, any라고 추론하고 있다. ..
📚 제네릭(Generic) 제네릭(Generic)은 데이터 타입을 일반화(generalize)한다는 것을 뜻한다. 제네릭은 타입을 미리 정하지않고 사용하는 시점에서 타입을 정의할 수 있다. 즉, 선언 시점이 아니라 생성시점에 타입을 명시하기 때문에 하나의 타입만이 아닌 여러 타입을 사용할 수 있는 것이다. 📌 왜 제네릭을 사용할까? 선언시점이 아닌 생성 시점에 타입을 명시하기 때문에, 한번의 선언으로 다양한 타입에 '재사용'이 가능하다는 장점이 있다. 제네릭을 사용하지 않는다면? 선언 시점에 타입을 미리 정하거나, any를 사용해야할 것이다. 1) 타입을 미리 정하면, 하나의 타입만 사용하기 때문에 코드의 범용성이 떨어진다. 2) any를 사용하면, 데이터 타입을 제한할 수 없으며 어떤 데이터가 리턴될 ..
📚 타입 별칭(Type alias) 특정 타입이나 인터페이스 등을 참조할 수 있는 타입 변수를 의미한다. type 키워드를 사용하여 타입을 부를 이름을 설정하는 것. 타입 별칭의 장점 타입이 어떤 역할을 하는지 의미있는 이름을 부여할 수 있음 반복되는 타입을 변수화해서 코드의 반복을 줄 일 수 있음 type MyMessage = string | number function logText(text: MyMessage) {} var message: MyMessage = '안녕하세요' logText(message) message의 타입 string | number 를 MyMessage 라는 타입이름으로 정의해서 사용할 수 있다. 📌 타입 별칭과 인터페이스의 차이점 타입 별칭과 인터페이스 둘다 객체 타입을 정의..
📚 인터페이스(Interface) 인터페이스는 상호 간에 정의한 약속 혹은 규칙을 의미한다. 그냥 객체 타입을 정의할 때 사용하는 문법이라고 이해하면 쉽다. 인터페이스 정의가 가능한 범주 객체의 속성과 속성 타입 함수의 파라미터와 반환 타입 함수의 스펙(파라미터 개수와 반환값 여부) 배열과 객체를 접근하는 방식 클래스 인터페이스 정의 예제 let person = { name: 'Park', age: 99 } function logAge(obj: { age: number }) { console.log(obj.age) // 99 } logAge(person) // 99 함수에서 객체 속성의 타입을 지정해주고 있다. 인터페이스로 정의하면, interface personAge { age: number; } fu..
📚 변수와 함수 타입 정의 var name: string = 'captin' 변수: 타입 = 값 형식 세미콜론(:)을 타입 표기라고 한다. 함수에서도 사용한다. 📌 배열 타입: Array Array 배열의 데이터 타입[] // 문자열 배열 var compaines: Array = ['네이버', '삼성', '인프런'] var compaines: string[] = ['네이버', '삼성', '인프런'] // 숫자 배열 var cards: Array = [1, 2, 3, 4] var cards: number[] = [1, 2, 3, 4] 📌 튜플 타입: tuple var items: [string, number] = ['hi', 11] 정해진 순서와 타입이 일치해야한다 any 아무 데이터나 취급하겠다는 의미...
1. 타입스크립트 소개 타입스크립트란 타입스크립트는 자바스크립트의 확장 언어. 타입스크립트의 본질은 코드를 더 읽기 쉽게 만들어 준다. 왜 타입스크립트를 배워야 할까 에러 사전 방지 코드를 실제 실행 전에 미리 에러를 검출 할수 있다. 코드 가이드 및 자동 완성 코드 가이드와 자동완성을 지원해서 코드를 더욱 빠르고 정확하게 작성할 수 있도록 도와준다. 2. 타입스크립트 시작하기 타입스크립트를 브라우저에서도 사용하려면 자바스크립트 파일로 컴파일 해줘야 한다. NPM 패키지 설치하기 npm i typescript -D 타입스크립트 컴파일 명령어 node ./node_modules/typescript/bin/tsc index.ts