TypeScript

    [ TS ] Classes and Interfaces

    🔴 Classes ⚪ 타입스크립트의 기본적인 클래스 형태 class Player { constructor( private firstName: string, private lastName: string, public nickname: string ) {} } const ryong = new Player("ryong", "jeong", "Ryong"); ryong.nickname; ⚪ 자바스크립트와는 다르게 접근 지정자를 선언할 수 있다. ⚪ 생성자 파라미터에 있는 변수들을 자동으로 클래스의 this 변수에 할당한다. ⚪ 추상 클래스는 다른 클래스에서 상속받을 수만 있는 클래스이며, 새로운 인스턴스를 만들 수 없다. ⚪ 추상 메소드는 추상 클래스를 상속받는 클래스에서 구현해야 하는 메소드를 의미한다. // ..

    [ TS ] Functions

    🔴 Call Signatures // 함수를 작성할 때, argument의 타입을 지정하고, // return 값은 유추시키는 방식을 사용했으나 const add = (a: number, b: number) => a + b; // 미리 타입을 지정하면 type Add = (a: number, b: number) => number; // argument에 직접 타입을 적어주지 않아도 된다. const add: Add = (a, b) => a + b; 🟠 Overloading ⚪ 오버로딩은 함수가 서로 다른 여러 개의 call signatures를 가지고 있을 때 발생한다. type Add = { (a: number, b: number) : number (a: number, b: string) : numbe..

    [ TS ] What is TypeScript?

    🔴 Why not JavaScript // 이상해!! [1, 2, 3, 4] + false // '1, 2, 3, 4false' // 이상해!! function divide(a, b) { return a / b; } divide("xxxxx"); // NaN => 왜 Error를 출력하지 않지? 🟠 Implicit Types vs Explicit Types let a = "hello" let b : boolean = false // But, TypeScript가 추론하도록 하는게 낫다. 🟡 Types of TS part One type Name = string; type Age = number; type Player = { name: Name, age?: Age // 선택적 타입 } const playe..