본문 바로가기
반응형

Language/TypeScript11

[TypeScript] 타입스크립트 이해(5) - 서로소 유니온 타입 서로소 유니온 타입/** * 1. 서로소 유니온 타입 * : 교집합이 없는 타입으로만 만든 유니온 타입 */type Admin = { tag : "ADMIN" name : string; kickCount : number;};type Member = { tag : "MEMBER" name : string; point : number;};type Guest = { tag : "GUEST" name : string; visitCount : number;};/** * tag property를 추가해주면서 서로 교집합이 사라짐. * tag가 ADMIN이면서 MEMBER이면서 GEUST일 수 없기 때문 */type User = Admin | Member | Guest.. 2025. 6. 15.
[TypeScript] 타입스크립트 이해(4) - 타입단언/타입좁히기 타입 단언/** * 1. 타입 단언(Type assertion) */type Person = { name : string; age : number;}let person = {} as Person;person.name = "이정환";person.age = 27;type Dog = { name : string; color : string;}let dog = { name : "돌돌이", color: "brown", breed : "진돗개" // 초과 property 검사 회피} as Dog;/** * 타입 단언의 규칙 * 가. 값 as 단언 (A as B) * - A가 B의 슈퍼/서브 타입이어야 함 */let num1 = 10 as never;let num2 = 10 as.. 2025. 6. 15.
[TypeScript] 타입스크립트 이해(3) - 타입추론 타입추론/** * 1. 타입 추론 * : 초깃값을 기준으로 타입 추론 */let a = 10;let b = "hello";let c = { id : 1, name : "이정환", profile : { nickname : "winterlood", }, urls : ['https://winterlood.com']}// 구조분해할당에서도 추론 OKlet {id, name, profile} = c;let [one, two, three] = [1, "hello", true]// 함수 매개변수 기본값, 반환값 추론 OKfunction func(message = "hello") { return "hello";}/** * Any 타입의 진화 * : 초깃값 없을 경우 '암묵적.. 2025. 6. 15.
[TypeScript] 타입스크립트 이해(2) - 대수타입 대수타입여러 개의 타입을 합성해서 새롭게 만들어낸 타입/** * 1. 대수 타입 * : 여러 개의 타입을 합성해서 새롭게 만들어낸 타입 * : 합집합타입, 교집합 타입 *//** * 가. 합집합타입(Union) */let a : string | number | boolean | 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 Union = Dog | Person;let union1 :.. 2025. 6. 15.
[TypeScript] 타입스크립트 이해(1) - 집합/타입계층도/타입호환성 타입스크립트를 이해한다는 것?어떤 기준으로 타입을 정의하는가어떤 기준으로 타입간의 관계를 정의하는가어떤 기준으로 타입의 오류를 검사하는가즉, 구체적인 원리와 동작 방식을 살피는 것타입은 집합이다타입스크립트의 타입은 "집합'임값들을 가진 집합, 계층으로 표현 가능함슈퍼타입(부모타입)서브타입(자식타입)1. 타입 호환성어떤 타입을 다른 타입으로 취급해도 괜찮은지 판단하는 것 업 캐스팅 : 서브타입을 슈퍼타입으로 취급 (O)다운 캐스팅 : 슈퍼타입을 서브타입으로 취급 → 대부분의 상황에서 (X)예를 들어, Number 리터럴 타입은 Number 타입으로 취급가능하지만 반대는 안됨타입 계층도/** * 1. Unknown * : 전체 집합이므로, 모든 타입을 넣을 수 있음 */function unknownExam(.. 2025. 6. 15.
[TypeScript] 타입스크립트 기본(4) - Void, Never Void공허, 아무것도 없다는 의미// 1. 함수에서의 활용function func1() : string { return "hello";}function func2() : void { console.log("hello");}// 2. 변수에서의 활용let a : void; // 어떠한 값도 담을 수 없음a = undefined; // undefined만 가능 🤚undefined 혹은 null이 아닌 void를 쓰는 이유?만약 함수 반환 타입을 undefined 혹은 null로 할 경우 에러가 발생하기 때문즉, 실제 함수에서 return undefined; 혹은 return;으로 끝나야 함null로 지정할 경우는 반드시 return null;이 되어야 함Never존재하지 않는, 불가능한 타입/.. 2025. 6. 8.
반응형