타입스크립트 기초
타입스크립트가 왜 필요할까?
🔸자바스크립트 코드가 너무 지저분하다.
🔸코드 스케일이 커지면서 코드 관리가 되지 않는다.
타입스크립트를 사용하면 좋은 점
🔸자바스크립트 기반보다 버그를 줄일 수 있다.
🔸유지보수가 쉽다.
🔸강력한 높은 퀄리티의 코드를 생산할 수 있다.
수업대상
🔸자바스크립트 기초 숙지
🔸버그 위험을 낮추고 싶은 개발자
선행학습
🔸숫자, 문자열, 배열, 객체, 함수 데이터 타입
🔸변수 객체지향철학, 동적메모리의 동작 원리
타입스크립트 = 자바스크립트 + 타입체크
🔸타입스크립트 환경에 자바스크립트를 코딩하면 동작함
🔸자바스크립트 환경에 타입스크립트를 코딩하면 동작안함
데이터 타입을 표기하면 좋은 점
🔸컴파일 타임시 오류 체크
🔸TS에서 바로 웹브라우저는 해석하지 못하기 때문에,
JS를 통해 컴파일 번역을 해서 웹브라우저해서 해석할 수 있다.
환경설정
🔸vscode 설치
🔸타입스크립트 설치
🔸타입스크립트 파일 만들기
타입스크립트 첫번째 프로젝트
yarn add typescript
npx tsc --init
npx tsc 파일명.ts
npx tsc -w 파일명.ts
데이터 타입이 중요한 이유
🔸자바스크립트 변수에는 어떤 데이터 타입의 값도 할당될 수 있다.
그렇기 때문에 누군가의 실수로 그 변수에 초기값이 변경이 될 수도 있다.
🔸자바스크립트는 이러한 문제를 사전에 막지 못 한다.
타입 추론(Type Inference) 기능
🔸타입스크립트의 타입추론
🔸타입스크립트는 타입 추론 기능을 통해 변수의 타입을 자동으로 판단할 수 있다.
🔸타입스크립트 컴파일러가 초기에 할당된 값을 바탕으로 변수의 타입을 추론한다.
🔸타입스크립트는 age 변수의 타입을 자동으로 number로 추론한다.
🔸타입 추론은 코드를 간결하게 작성할 수 있도록 도와주지만,
타입을 명시적으로 지정하는 것이 더 명확하다.
🔸타입 추론이 모호나 경우나 복잡한 로직에서는 타입을 명시하는 것이 좋다.
데이터 타입의 종류
🔸타입스크립트에서는 다양한 데이터 타입을 지원
🔸데이터 타입은 크게 기본 데이터 타입, 객체 타입, 특수 타입으로 나눌 수 있음
🔸기본 데이터 타입
- number: 숫자 타입으로, 정수와 실수를 포함
- string: 문자열 타입
- boolean: 참, 거짓을 나타내는 불리언 타임
- null: 값이 없음을 나타내는 타입
- undefined: 값이 할당되지 않는 변수의 기본값인 타입
🔸객체 타입
- object: 객체를 나타내는 타입
- array: 동일한 타입의 요소를 가진 배열을 나타내는 타입
- tuple: 각 요소가 다른 타입을 가질 수 있는 배열을 나타내는 타입
🔸특수 타입
- any: 어떠한 타입이든 할당될 수 있는 타입 // 임시타
- unknown: 타입을 미리 알 수 없는 경우 사용되는 타입
타입스크립트 타입 명시
타입 명시
🔸변수를 선언할 때 변수 값의 타입을 명시함으로써 변수의 데이터 타입을 지정한다.
🔸타입추론을 하지만, 타입을 명시하면 명확해짐
let x: string = '나는 문자열이다.';
변수에 데이터 타입을 지정하는 방법
🔸변수 선언 시 데이터 타입을 지정한다.
🔸타입스크립트를 자바스크립트로 컴파일 할 때,
데이터 타입에 다른 값이 할당되면 오류를 발생시켜 개발자에게 알려준다.
🔸컴파일 타임에 에러를 일으켜서 에러메세지가 나는 것을 컴파일 에러라고 한다.
🔸대부분은 syntax에러가 났을때 컴파일 타임에 에러가 난다.
💢지금 함수에서 타입을 일일이 명시를 해줬더니 가독성도 떨어지고 일일이 타입을 나열해줘야하는 귀찮음이 생겼다. 이를 해결하기 위해 인터페이스를 사용하면 된다❗ |
타입스크립트 인터페이스
🔸인터페이스는 'string'이나 'number' 타입처럼 데이터 타입으로 사용 가능
🔸선택적 프로퍼티로 지정하려면 속성값 뒤에 ?(옵셔널기호)를 붙여준다.
🔸메소드도 인터페이스 내에서 선언 가능 -> 메소드 오버라이딩
🔸인터페이스를 클래스에 상속(구현: implements)할 수 있다.
🔸인터페이스는 ts파일에만 보여지고, js파일에서는 보여지지 않는다.
.ts
.js
열거형 (enum)
🔥실제 사용은 GenderType.Male || GenderType.Female 로 불러서 사용 할 수 있다❗
.js에서 구현되는 .ts 코드
🔥열거형 타입을 문자열로 설정할 수도 있다❗
'공부 > 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)' 카테고리의 다른 글
프론트엔드 기초: React + TypeScript(8)-리액트, 프로젝트생성 (0) | 2024.10.30 |
---|---|
프론트엔드 기초: React + TypeScript(7)-타입스크립트 타입방법, 캡슐화, getter와 setter (0) | 2024.10.29 |
프론트엔드 기초: React + TypeScript(5)-함수포인터, 객체지향, 클래스, 오버로딩, 오버라이딩, 인터페이스, 람다식 (0) | 2024.10.27 |
프론트엔드 기초: React + TypeScript(4)-포인터 변수 (0) | 2024.10.24 |
프론트엔드 기초: React + TypeScript(3)-프로그래밍 기본 원리(C언어를 통한) (3) | 2024.10.23 |