TypeScript
TIL | Type Inference
Type Inference(타입 추론) Inference TS에서 변수 명에 특정 값을 할당할 때, 타입을 따로 명시하지 않았을 경우 알아서 타입이 자동으로 결정되는 것을 말한다. let text = "hello"; // let text: string // text = 1; // Type 'number' is not assignable to type 'string' 위처럼 text 변수 명에 hello를 할당하였더니 변수 타입이 string으로 추론되어 자동으로 결정되었다. 이후 타입이 number값인 1을 재할당하니 에러가 발생한다. (기존의 text 타입이 string으로 결정되었기 때문이다.) Intersection in default const print = (message = "안녕하세요") =..
TIL | Union, Intersection
Union, Intersection Union(|, or) type Direction = "right" | "left" | "up" | "down"; //string Literal Types // const move = function (direction: Direction) { console.log(direction); }; move("right"); // const print = (value: string | number) => { console.log(value); }; print(1); // 1(number) print("1"); // 1(string) JS의 논리연산자중 OR을 뜻하는 ||와 같이 A이거나 B이거나를 뜻한다. 위 move 함수의 인자로 Direction 타입을 지정하였으며, 해당..
TIL | Alias
Alias Alias - primitive type type Text = string; // string을 Text라는 타입으로 지정 const name: Text = "Yongmin"; // type Num = number; // number를 Num이라는 타입으로 지정 const age: Num = "29"; 위처럼 원하는 타입 명으로 타입을 직접 지정할 수 있다.(ex> Text, Num) Alias - object type type Text = string; type Number = number; / type Student = { name: string; // (property) name: string age: number; // (property) name: number }; // const s..
TIL | Array, readonly, Tuple
Array, readonly, Tuple, Array const fruits: string[] = ["1", "2"]; const fruits: number[] = [1, 2]; const fruits: Array = ["1", "2"]; // 제네릭 챕터에서 다시 다룰 예정 const fruits: Array = [1, 2]; 배열의 element 타입을 위와 같이 지정할 수 있다. readonly const numbers: number[] = [1, 2]; const printArray1 = function (scores: readonly number[]) { numbers.push(); // Property 'push' does not exist on type 'readonly number[] };..
TIL | 함수 타입 이용(type, spread, default, rest)
일반 함수에서의 사용 In javascript function jsAdd(a, b) { return a + b; } In typescript function jsAdd(a: number, b: number): number { return a + b; // number값만 인자로 전달 가능 } // function jsAdd(a: string, b: string): string { return a + b; // string값만 인자로 전달 가능 } JS의 경우, 타입이 결정되지 않았기 때문에 string, number 등의 인자 타입에 제한을 받지 않고 해당 로직을 처리할 수 있다. (type으로 따지면, any에 속한다.) TS의 경우, 지정된 타입으로만 인자 전달 및 로직 처리가 가능하다. return..
TIL | Data 기본 타입
Data Type Javascript와 타입 종류는 비슷하지만 동적 타입이 아닌 정적이며, 타입이 결정된 후 다른 타입의 데이터가 해당 변수에 할당될 수 없다. (좀더 엄격한 기준을 갖고 있다.) JavaScript Data Type Primitive: number, string, boolean, bigint, symbol, null, undefined Object: function, object, array ... Number const num1: number = 1; const num2: number = 0.01; const num2: number = -12; const num: number = "string"; //Type 'string' is not assignable to type 'number..