
Vue와 함께 사용하는 TypeScript
Vue 3 TypeScript 지원, defineComponent, PropType, type inference, generic components, strict mode
22 면접 질문·
Senior
1TypeScript와 함께 사용하는 Vue 3에서 defineComponent의 주요 역할은 무엇인가요?
1
TypeScript와 함께 사용하는 Vue 3에서 defineComponent의 주요 역할은 무엇인가요?
답변
defineComponent는 컴포넌트 옵션에 대한 TypeScript type inference를 활성화합니다. 이 함수가 없으면 Options API에서 this 컨텍스트가 any로 처리됩니다. 이를 통해 props, data, computed, 메서드가 자동으로 올바르게 타입이 지정되도록 보장합니다.
2runtime declaration으로 복잡한 props를 선언할 때 PropType을 사용하는 이유는 무엇인가요?
2
runtime declaration으로 복잡한 props를 선언할 때 PropType을 사용하는 이유는 무엇인가요?
답변
PropType는 runtime 선언 시 prop 타입을 캐스팅할 수 있게 해주는 Vue의 utility type입니다. Object as PropType Book을 사용하면 book이 일반적인 Object가 아니라 Book으로 올바르게 타입이 지정됩니다. 이를 통해 제네릭 타입을 사용하는 script setup 없이도 자동 완성과 타입 안정성이 향상됩니다.
3type inference 측면에서 script setup과 lang='ts'를 사용한 script setup의 차이는 무엇인가요?
3
type inference 측면에서 script setup과 lang='ts'를 사용한 script setup의 차이는 무엇인가요?
답변
lang='ts'를 사용한 script setup은 TypeScript를 활성화하고 defineComponent 없이 자동 type inference를 가능하게 합니다. defineProps로 정의된 props는 자동으로 타입이 지정되고, refs는 완전한 inference를 가지며, TypeScript 에러는 컴파일 시점에 감지됩니다. lang='ts'가 없으면 어떤 타입 검사도 수행되지 않습니다.
4
TypeScript에서 초기에 null일 수 있는 ref를 올바르게 타입 지정하려면 어떻게 해야 하나요?
5
Vue 3.3 이상에서 script setup generic을 사용한 제네릭 컴포넌트의 주요 장점은 무엇입니까?
+19 면접 질문
기타 Vue.js / Nuxt.js 면접 주제
JavaScript 기초
Junior
20개 질문모던 JavaScript (ES6+)
Junior
20개 질문Vue 기초
Junior
22개 질문Vue 컴포넌트
Junior
20개 질문Vue Router
Junior
18개 질문Pinia State Management
Junior
20개 질문Vuex (Legacy)
Mid-Level
15개 질문Composition API
Mid-Level
24개 질문Vue 반응성
Mid-Level
20개 질문Nuxt 기초
Mid-Level
22개 질문Nuxt 데이터 페칭
Mid-Level
20개 질문Nuxt SSR 및 SSG
Mid-Level
22개 질문Nuxt 서버 라우트
Mid-Level
20개 질문Nuxt 모듈
Mid-Level
18개 질문Vue 컴포저블
Mid-Level
20개 질문Vue 폼과 유효성 검사
Mid-Level
20개 질문Nuxt 상태 관리
Mid-Level
18개 질문Vue 테스팅
Mid-Level
20개 질문Nuxt 배포 및 CI/CD
Mid-Level
22개 질문Vue 성능
Senior
22개 질문Vue 고급 패턴
Senior
24개 질문Nuxt 인증
Senior
20개 질문Nuxt에서의 SEO
Senior
20개 질문Nuxt 국제화
Senior
18개 질문Vue 아키텍처
Senior
22개 질문Nuxt 보안
Senior
20개 질문Vue 생태계
Senior
18개 질문Vue 2→3 및 Nuxt 2→3 마이그레이션
Senior
22개 질문