방명록
- [TypeScript] TypeScript 공부일지: 타입 추론 [6/7 study]2024년 06월 07일 16시 09분 00초에 업로드 된 글입니다.작성자: 동혁이
TypeScript 공부일지: 타입 추론
❗️주의지극히 개인 공부한 내용을 올린 거기 때문에 이해하지 못할 수도 있음
❗️타입 추론이란?
- 변수의 초기값을 가지고 타입 추론을 한다.
- 함수의 반환값 타입을 추론할 때는 초기화하는 값이 아니라 리턴문 다음에 오는 반환값을 가지고 추론한다.
- 만약에 매개변수에 기본값이 설정되어 있다면 기본값이 설정된 매개변수의 타입도 기본값을 기준으로 타입을 추론한다.
- 딱봐도 우리가 봐도 타입이 추론되면 당연히 TS도 타입 추론 똑같이 함
/** * 타입 추론 * - 변수의 초기값을 가지고 타입 추론을 한다. * - 함수의 반환값 타입을 추론할 때는 초기화하는 값이 아니라 리턴문 다음에 오는 반환값을 가지고 추론한다. * - 만약에 매개변수에 기본값이 설정되어 있다면 기본값이 설정된 매개변수의 타입도 기본값을 기준으로 타입을 추론한다. * - 딱봐도 우리가 봐도 타입이 추론되면 당연히 TS도 타입 추론 똑같이 함 */ let a = 10; let b = "hello"; let c = { id: 1, name: "이정환", profile: { nickname: "winterload", }, urls: ["https://winterload.com"], }; let { id, name, profile } = c; let [one, two, three] = [1, "hello", true]; function func(message = "hello") { return "hello"; } // 아래와 같이 타입이 계속 변하는 것을 : any 타입의 진화라고 부름 // 우리가 생각하는 것과 다르게 타입 추론 하는경우 let d; // 초기값 안주면 any 타입으로 추론됨, 암묵적 any 타입 (은 진화를 하게 됨), 명시적으로 :any 타입을 지정하면 또 다름 아래 전부 다 any 타입인거임 // 이러한 암묵적 any 타입은 비추천함 d = 10; // 이번에 이렇게 숫자값을 넣어주면 다음라인에서 d를 쓰면 number타입으로 추론됨 d.toFixed(); // number타입 메서드 사용가능 // d.toUppercase(); string타입 메서드 사용 불가능 d = "hello"; // 또 이렇게 문자열 할당하는거는 오류 없음, 이렇게 할당하면 다음라인 d는 string으로 변함 d.toUpperCase(); // d.toFixed(); // let에서는 number 타입으로 추론됬었는데 const에서는 10 number literal 타입으로 추론됨 const num = 10; const str = "hello"; let arr = [1, "hello"]; // 이렇게 const 말고 let을 사용해 number를 추론하는게 더 다양한 숫자를 쓸 수 있음 // 이런걸 : 타입 넓히기 라고 함 // 따라서 const로 선언된 상수가 아니라면 let과 같이 타입을 넓혀서 좀 더 범용적으로 변수를 사용할 수 있도록 타입 넓히기를 통해 타입을 잘 추론해준다.
다음글이 없습니다.이전글이 없습니다.댓글