제네릭(Generic) 함수 : 모든타입을 다 적용할 수 있는 범용적인 함수 function func(value: T): T { // T 타입변수 return value; } let num = func(10); // type : number let bool = func(true); // type : boolen let str = func("string"); // type : string // 타입 변수에 할당할 타입을 직접 명시 -> number[] 타입으로 자동 추론 되기 때문에 let arr = func([1, 2, 3]); // 튜플 타입 타입변수 T 선언, 함수를 호출할때 인수에 따라 타입이 결정 제네릭 함수 활용 예제 타입 변수가 2개 인 경우 function swap(a: T, b: U) { ..
Front
const member = { name: "이마크", age: 25, position: "leader", work() { console.log("singing"); }, }; class Member { //필드 name: string = ""; // 초깃값 설정 age: number = 0; position: string = "; } ** tsconfig.json 에서 "noImplicitAny" : false 추가로 암시적 any 타입 허용 가능 필드의 초깃값 설정이 가능 -> 생성자에서도 초기화 가능 const member = { name: "이마크", age: 25, position: "leader", work() { console.log("singing"); }, }; class Member { ..
Classes : 동일한 모양의 객체를 더 쉽게 생성하도록 도와주는 문법 필드 : 클래스가 생성할 객체가 갖는 프로퍼티 생성자 : 객체를 생성하는 함수 (this = 현재 만들고 있는 객체) let memberA = { name: "이마크", grade: "A+", age: 25, chant() { console.log("TO THE WORLD 여긴 NCT"); }, introduce() { console.log("안녕하세요 NCT 입니다."); }, }; class Member { // class 앞 글자는 대문자 //필드 name; grade; age; // 생성자 constructor(name, grade, age) { this.name = name; this.grade = grade; this.a..
인터페이스 : 타입에 이름을 지어주는 또 다른 문법, 객체의 구조를 정의하는데 특화 interface Person { readonly name: string; // 읽기 전용 프로퍼티 age?: number; // 선택적 프로퍼티 sayHi: () => void; // 메서드 타입 정의 (함수타입 표현식) sayHi: (a: number, b: number) => void; // ❌ 메서드의 오버로딩 구현이 불가 sayHi(): void; // 메서드 타입 정의 (호출 시그니처) sayHi(a: number, b: number): void; } | number // ❌ Union, Intersection 타입 정의 type Type1 = number | string | Person; type Type2 ..
함수를 설명하는 가장 좋은 방법 : 어떤 [타입의] 매게변수를 받고, 어떤 [타입의] 결과값을 반환하는지 이야기 function func(a: number, b: number) { // 자동 추론 -> number return a + b; } // 화살표 함수 const add = (a: number, b: number) => a + b; // 매게변수 function introduce(name = "나재민", age: number, tall?: number) { // ? 선택적 매게변수: undefined으로 유니온 타입으로 받음 console.log(`name : ${name}`); if (typeof tall === "number") { console.log(`tall : ${tall + 10}`)..
대수타입(Algebraic type) : 여러개의 타입을 합성해서 새롭게 만들어낸 타입 합집합 - Union type ("|" 사용): 어느 한쪽에만 포함되는 객체 또는 모두 포함되는 교집합에 위치하는 객체 // union 타입 let a: string | number | boolean | undefined | null | {}; a = 1; a = "hello"; a = true; let arr: (number | string | boolean)[] = [1, "hello", true]; type Dog = { name: string; color: string; }; type Person = { name: string; language: string; }; type Union1 = Dog | Perso..