Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- KAKAO
- Javascript
- BFS
- 코테
- 컴퓨터공학
- CS
- 그리디
- 컴퓨터과학
- github
- CSS
- cpu
- nodejs
- 호이스팅
- LinkSnap
- computerscience
- 야놀자
- 국비지원취업
- 프론트엔드개발자
- 코딩테스트
- 패스트캠퍼스
- 자바스크립트
- 너비우선탐색
- html/css/js
- js
- 국비지원
- 부트캠프
- git
- 백준
- 알고리즘
- DFS
Archives
- Today
- Total
My Boundary As Much As I Experienced
TypeScript) 교차 타입 본문
교차 타입
커스텀 타입을 혼합해서 쓸 수 있다.
사용법1. 객체 커스텀 타입과 객체 커스텀 타입을 혼합하면 합집합을 강제한다.
type Admin = {
name: string;
privilages: string[];
};
type Employee = {
name: string;
startDate: Date; // 자바스크립트 Date객체를 말한다.
};
type ElevatedEmployee = Admin & Employee;
// 이런걸 교차타입이라고 한다.
const e1: ElevatedEmployee = {
name: "Max",
privilages: ["create-server"],
startDate: new Date(),
};
console.log(e1);
인터페이스를 커스텀 타입으로 조합할 수도 있다.
/*
인터페이스
*/
//인터페이스 상속으로도 비슷한걸 만들 수 있다.
interface Manager {
name: string;
privilages: string[];
}
interface Crew {
name: string;
startDate: Date; // 자바스크립트 Date객체를 말한다.
}
type CLevel = manager & crew;
// 타입으로 인터페이스 여러개를 조합할수도 있다!
const ceo: CLevel = { // 그 결과물
name: "Max",
privilages: ["create-server"],
startDate: new Date(),
};
interface cLevelEmployee extends Crew, Manager {}
// 물론 인터페이스로도 인터페이스를 조합할 수 있다. 이런식으로 구현할 수 있다.
// 교차 타입이 좋은 이유 한 가지 더
// 객체 타입이 아니어도 조합할 수 있다.
사용법2. 유니언 타입을 교차타입으로 만들면 교집합만 취한다. 즉, 겹치는 것만 취한다.
type Combinable = string | number;
type Numeric = number | boolean;
type Universal = Combinable & Numeric;
// number로 판단한다. 왜냐하면 교차하는게 number이기 때문
'FrontEnd > TypeScript' 카테고리의 다른 글
d.ts파일 설정 (0) | 2024.02.14 |
---|---|
TypeScript) 타입가드 (1) | 2023.10.20 |
TypeScript) 커스텀 타입 vs 인터페이스 (0) | 2023.10.20 |
TypeScript) enum (0) | 2023.10.18 |
TypeScript) 배열과 튜플 타입 (1) | 2023.10.18 |