타입스크립트 Typescript

소개

타입스크립트는 마이크로소프트에서 개발한 정적 타이핑 언어입니다.

자바스크립트 상위 집합(Superset)으로 모든 자바스크립트 코드는 유효한 타입스크립트 코드이기도 합니다.

결국 자바스크립트입니다.

특징

설치

npm install -g typescript
# npm install typescript --save-dev

컴파일

tsc 'ts 파일명'
# tsc ./index.ts

개발 환경

개발 환경은 리눅스에서의 Bun을 추천한다. 따로 컴파일 하지않고 ts파일을 바로 실행시킬 수 있다.

# bun 설치
curl -fsSL https://bun.com/install | bash
bun --version
mkdir test_bun
cd test_bun

# bun template app install
bun init --react=tailwind .

# 개발 모드로 실행. 종료는 ctrl + c
bun run dev

첫 typescript 코드

test.ts 파일을 생성하고 typescript 코드를 작성합니다.

const name = 'your name';
console.log(`hello ${name}~~ 😁`);

터미널에서 실행해 봅니다.

bun test.ts

데이터 타입

타입 지정

기본적으로 변수 선언 시 초기화 값을 대입하면 컴파일러가 묵시적으로 타입을 추론합니다.
그 외에는 변수명 뒤에 :타입 을 붙입니다.

let name = 'sixtick'; // string 타입이됨

let age: number = 44; // number 타입이 됨

age = '44'; // 타입이 맞지 않아 error 가 발생합니다.

타입 선언

type 키워드를 써서 타입을 선언합니다.

// union type 은 여러가지 타입을 가질 수 있다
type Num = number | undefined;

let age : Num; // 초기화 안하면 undefined가 됨
age = 44;

키워드

키워드설명
type타입을 선언합니다.
interface타입을 선언합니다.
class클래스를 선언합니다.
enum열거형을 선언합니다.
namespace네임스페이스를 선언합니다.
private속성을 외부에서 접근하지 못하게 함
protected속성을
public속성을 외부에서 접근할 수 있게 함. 기본속성
readonly속성을 읽기 전용으로 지정함
abstract추상 클래스를 선언합니다.
implements인터페이스를 구현합니다.
extends클래스를 상속합니다.
override명시적으로 재정의를 표현함
static정적 속성
as타입 단언을 수행합니다
is타입 가드를 수행합니다
keyof객체의 속성을 유니온 타입으로 반환합니다
typeof객체의 타입을 반환합니다
infer조건부 타입 내에서 타입을 추론할때 사용합니다
satisfies식이 특정 타입에 부합하는지 검사하면서도 기존 타입을 유지합니다
declare컴파일러에게 전역 변수임을 알림
module모듈을 선언합니다
asserts특정 조건이 참임을 보장하는 단언 함수를 정의할 때 사용합니다