본문 바로가기

Ts

TypeScript 2편! (any, unknown)

// ()는 선택사항이다. 하지만 해주면 좀 더 가독성이 좋아진다.
let member : (number | string) = 'kim';
// 여러 숫자와 문자열이 들어갈 수 있기 때문에 이진법으로 이름을 넣어도 된다.
member = 1101011000000100;
// 배열이나 객체의 타입을 여러개 지정해주려면 아래처럼
let numString :(number | string)[] = [1,'2',3]
let objs :{a:string | number } = { a : 123 }
// 모든 자료형 허용이 가능하다. 타입 쉴드 해제
let anyType : any;
anyType = 123;
anyType = []
// any 말고 unknown도 있는데 any 보다 안전하다.
let unknowns :unknown;
unknowns = 123;
// string 타입에 any를 쓴 변수를 할당하면 에러가 안나지만
// unknown를 쓴 변수를 할당하면 에러가난다.
let state : string ='';
state = anyType
// 아래는 에러코드다
state = unknowns
// unknowns에 -1 될까?
// 산술 연산의 왼쪽은 'any', 'number', 'bigint' 또는 열거형 형식이어야 한다.
unknowns - 1
// 타입 스크립트는 계산에도 엄격하다.
// 아래는 string | number 타입이기 때문에 + 가 되지 않는다.
let plusErr : (string | number);
plusErr + 1;
// 아래처럼 해야만 한다.
let plus : number;
plus + 1
// 당연하게도 unknown 타입도 안된다.
// 예시
let school : {
score : (number|boolean)[],
teacher : string,
friend : string | string[]
}

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

 

'Ts' 카테고리의 다른 글

TypeScript 타입 지정법.  (0) 2023.08.01