union type, any, unknown

Im Su Kyung·2024년 1월 26일
0

Typescript TIL

목록 보기
4/5
post-thumbnail

🟦 Union Type

: 타입 2개 이상 합쳐진 새로운 타입 만들기

let members : number | string = 123; 

  • 숫자 또는 문자가 가능한 array 타입 지정
let members :number[] = [1,2,3];
let members :
	(number | string)[] = [1, '2', 3];

: number | string[] 숫자가 들어올 수 있고 혹은 문자열이 들어올 수 도 있다.

  • 숫자 또는 문자가 가능한 object 타입 지정
let object : {
	a : string
}={ 
  	a : '123' 
}
let object : {
	a : string | number
}={ 
  	a : 123 
}

🟦 Any Type

: 모든 자료형을 허용 (타입으로 접근하기보다 타입 실드 해제 문법이라고 생각하기)

let members : any;

🟦 Unknown Type

: 모든 자료형을 허용 (any type 보다 안전)

let members : unknown;

🟦 주의사항

  • 타입이 맞는데 +1 이 안되는 것일까? (타입스크립트는 타입 엄격한 것을 좋아한다.)

string 타입 +1 [가능]
number 타입 +1 [가능]

string | number 타입 +1 [불가능]

//  불가능 (타입스크립트는 엄격한것을 좋아한다.)
//  숫자 타입이 아니라면 허락해 주지 않는다.
let age : unknown = 1;
age - 1 ; 

🟦 Homework

(1) 변수 4개에 타입을 지정하기
: age 변수에는 undefined 말고 숫자도 들어올 수 있다.

let user = 'kim';
let age = undefined;
let married = false; 
let 철수 = [user, age, married];
let user = string = 'kim';
let age = undefined | number = undefined;
let married = boolean = false; 
let 철수 = (
  		string|number|undefined|boolean
	)[]=[user, age, married];

(2) 학교라는 변수에 타입 지정하기

let 학교 = {
    score : [100, 97, 84],
    teacher : 'Phil',
    friend : 'John'
}
학교.score[4] = false;
학교.friend = ['Lee' , 학교.teacher]
let 학교 : {
  score : (number|boolean)[],
  teacher : string, 
  friend : string | string[]

}={
    score : [100, 97, 84],
    teacher : 'Phil',
    friend : 'John'
}
학교.score[4] = false;
학교.friend = ['Lee' , 학교.teacher]
profile
Dev bestsu

0개의 댓글