본문 바로가기

Front-End/TypeScript

타입추론(Type inference) , 타입 명시(Type Annotation)

타입추론 = "타입스크립트가 알아서 해줌"

타입명시 = "내가 타입지정함"

 

타입추론 (Type inference): 타입스크립트가 해당 변수의 타입을 추론하는 방법

변수를 선언할 때 타입을 명시하지 않아도 타입스크립트가 할당된 값을 통해 타입을 추론

 

let num : number = 10;

 

이렇게 타입을 써줘야하는데, 타입스크립트가 알아서

 

"아 이건 넘버구나"하고서 추론해주는 거임.
그냥 자동으로 파악해주는 게 타입추론임.
const num = 10 ; //"10만 올 수 있다."
let num = 10; // number
let으로 선언하면 넘버가 되고,
const로 사용하면 "10"이라는 넘버 하나만 된다.
다른 것도 마찬가지다.
무엇을 변수로 선언했냐에 따라서 타입을 자동으로 추론해준다.
일반 변수는 타입추론이 되는데, 함수의 매개변수는 타입추론이 안된다.
그래서 직접 유추를 해줘야 한다.
 
return값은 타입추론 해준다.

타입명시(Type Annotation)
 
변수 선언 시 타입을 명시하는 방법

 

변수명 뒤에 콜론(:)을 붙이고 타입을 명시
const num :Number = 10;
const str: String : 'hello'

num = new Number(20)
str = new String("world")
이건 문제 없이 출력되지만 잘못됐다.  Number,String은 생성자함수꺼다.

밑에껄로 하면 에러난다.

 

//타입명시 > tuple(튜플)
//해당 자리에 정확하게 타입지정을 해주는 것을 튜플이라고 함.
const arr2: [number, string, number] = [1, "A", 3];

//tuple을 사용하지 않고 쓰려면 , (자료형|자료형[]) 이렇게 해주면 된다.
const arr3: (number | string)[] = [1, "A", 3];

//객체
const obj: {} = {};
const obj2: { name: string; age: number } = { name: "kim", age: 20 };

//리터럴 타입
//그 변수에 들어갈 값을 정확하게 지정하는 것이다.
let num: 10 = 10;

let obj3 = {
  name: "kim",
}
 

 

'Front-End > TypeScript' 카테고리의 다른 글

Generic(제네릭)  (0) 2024.07.22
interface , Type alias(타입별칭)  (0) 2024.07.22
as const  (0) 2024.07.21
타입스크립트 중급(옵셔널 프로퍼티,인터페이스,타입)  (0) 2024.07.20