Stack/TypeScript
[TS] 튜플(Tuple) / 열거형(Enum) / union / intersection
7ingout
2022. 7. 26. 09:49
* 튜플(Tuple)
배열과 매우 유사함
배열과의 차이점: 정해진 타입에 고정된 길이 배열을 나타냄
let tuple: [string, number]
tuple = ["a", 1]
tule = ["a",1, 2] // error 발생
let userid : number = 2134
let username: string = "green"
let isValid: boolean = true
let user: readonly [number, string, boolean] = [1234, "green", true]
console.log(user[0])
* 열거형(Enum)
숫자 혹은 문자열 값 집합에 이름을 부여할 수 있는 타입
enum Week {
Sun,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
}
console.log(Week)
ex05_tupleenum.ts
let tuple1: [string, number] = ["green", 20];
let users: [number, string, boolean][];
users = [[1, 'Neo', true], [2, 'Evan', false], [3, 'Lewis', true]]
enum Week {
Sun,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
}
console.log(Week)
console.log(Week.Sun) // 0
console.log(Week[0]) // Sun
enum Color {
Red = 'red',
Green = 'green',
Blue = 'blue'
}
console.log(Color)
console.log(Color['Red']) // red
console.log(Color.Green) // green
ex06_union.ts
// 유니언 타입 2개 이상의 타입을 허용하는 경우 유니언 타입이라고 함
// | 타입구분 () 선택사항
let unionVar : (string | number) = "green"
// intersection; 인터섹션
// &를 사용해 2개 이상의 타입을 조합하는 경우 인터섹션이라고 함
interface IUser {
name: string,
age: number
}
interface IValidation {
isValid: boolean
}
const neo: IUser & IValidation = {
name: "Neo",
age: 30,
isValid: true
}