# VueでのTypeScript (Vue.js / Nuxt.js) > Vue 3のTypeScriptサポート、defineComponent、PropType、type inference、generic components、strict mode - 22 面接問題 - Senior - [面接問題: Vue.js / Nuxt.js](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions.md) ## 1. Vue 3でTypeScriptを使う際、defineComponentの主な役割は何ですか? **回答** defineComponentはコンポーネントオプションに対するTypeScriptのtype inferenceを有効にします。この関数がないと、Options APIではthisコンテキストがanyとして扱われてしまいます。これによりprops、data、computed、メソッドが自動的に正しく型付けされることが保証されます。 ## 2. runtime declarationで複雑なpropsを宣言する際に、なぜPropTypeを使うのですか? **回答** PropTypeはVueのutility typeで、runtime宣言時にpropsの型をキャストできるようにします。Object as PropType Bookとすることで、bookが汎用的なObjectではなくBookとして正しく型付けされることが保証されます。これにより、汎用型を使った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'がない場合、型チェックは一切行われません。 ## さらに19問利用可能 - TypeScriptで初期値がnullになり得るrefを正しく型付けするにはどうすればよいですか? - Vue 3.3以降における script setup generic を用いたジェネリックコンポーネントの主な利点は何ですか? 無料で登録: https://sharpskill.dev/ja/login ## その他のVue.js / Nuxt.js面接トピック - [JavaScript の基礎](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/javascript-fundamentals.md): 20問, Junior - [モダンな JavaScript (ES6+)](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/es6-modern-javascript.md): 20問, Junior - [Vue の基礎](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-basics.md): 22問, Junior - [Vue コンポーネント](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-components.md): 20問, Junior - [Vue Router](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-router.md): 18問, Junior - [Pinia State Management](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/pinia-state-management.md): 20問, Junior - [Vuex (Legacy)](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vuex-legacy.md): 15問, Mid-Level - [Composition API](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/composition-api.md): 24問, Mid-Level - [Vue のリアクティビティ](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-reactivity.md): 20問, Mid-Level - [Nuxt の基礎](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-fundamentals.md): 22問, Mid-Level - [Nuxt のデータフェッチング](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-data-fetching.md): 20問, Mid-Level - [Nuxt の SSR と SSG](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-ssr-ssg.md): 22問, Mid-Level - [Nuxt サーバールート](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-server-routes.md): 20問, Mid-Level - [Nuxt モジュール](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-modules.md): 18問, Mid-Level - [Vue のコンポーザブル](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-composables.md): 20問, Mid-Level - [Vue フォームとバリデーション](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-forms-validation.md): 20問, Mid-Level - [Nuxt の状態管理](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-state-management.md): 18問, Mid-Level - [Vue のテスト](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-testing.md): 20問, Mid-Level - [Nuxt のデプロイと CI/CD](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-deployment-cicd.md): 22問, Mid-Level - [Vue のパフォーマンス](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-performance.md): 22問, Senior - [Vue の高度なパターン](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-advanced-patterns.md): 24問, Senior - [Nuxt認証](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-auth.md): 20問, Senior - [Nuxt での SEO](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-seo.md): 20問, Senior - [Nuxt の国際化](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-i18n.md): 18問, Senior - [Vue アーキテクチャ](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-architecture.md): 22問, Senior - [Nuxt セキュリティ](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/nuxt-security.md): 20問, Senior - [Vue エコシステム](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/vue-ecosystem.md): 18問, Senior - [Vue 2→3 & Nuxt 2→3 の移行](https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/migration-vue2-vue3-nuxt2-nuxt3.md): 22問, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ja/technologies/vue-nuxt/interview-questions/typescript-vue