๐ง Integrasi TypeScript dengan Vue.js
TypeScript adalah superset dari JavaScript yang menyediakan static typing. Dengan TypeScript, kamu bisa menulis kode Vue yang lebih aman, terstruktur, dan lebih mudah di-refactor dalam proyek besar.
๐ 1. Buat Proyek Vue + TypeScriptโ
a. Vue CLIโ
vue create my-vue-ts-app
Saat diminta preset, pilih:
โก๏ธ Manually select features
โก๏ธ Centang TypeScript
b. Vite (Vue 3 + TypeScript)โ
npm create vite@latest my-vue-ts-app -- --template vue-ts
cd my-vue-ts-app
npm install
npm run dev
๐ฆ 2. Struktur Dasar File TypeScriptโ
src/
โโโ main.ts
โโโ components/
โ โโโ HelloWorld.vue
โโโ shims-vue.d.ts
tsconfig.json
File .vue
tetap ditulis seperti biasa, tapi script
menggunakan lang="ts"
.
โ๏ธ 3. Komponen dengan TypeScriptโ
Contoh: HelloUser.vue
<template>
<p>Halo, {{ name }}</p>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
name: 'HelloUser',
props: {
name: {
type: String,
required: true
}
}
});
</script>
๐ฏ 4. Menggunakan Interfaceโ
interface User {
id: number;
name: string;
}
export default defineComponent({
data() {
return {
user: {} as User
};
}
});
๐ 5. shims-vue.d.tsโ
Agar TypeScript mengenali file .vue, buat file src/shims-vue.d.ts:
declare module '*.vue' {
import { DefineComponent } from 'vue';
const component: DefineComponent<{}, {}, any>;
export default component;
}
๐งช 6. Tools & Editor Supportโ
-
Gunakan VS Code untuk IntelliSense dan linting otomatis
-
Aktifkan
Volar
(pengganti Vetur) untuk dukungan terbaik Vue 3 + TS -
Integrasikan dengan ESLint dan Prettier untuk format otomatis
๐ ๏ธ 7. Tips Best Practiceโ
-
Gunakan
defineComponent()
di semua file.vue
-
Definisikan tipe untuk
props
,emits
, danrefs
-
Gunakan composables (dengan
setup()
) untuk pemanfaatan maksimal TypeScript
๐ 8. Integrasi Lanjutanโ
-
Vuex + TS โ Gunakan store modular dengan interface
-
Pinia + TS โ Dukungan TypeScript bawaan & lebih mudah
-
Vue Router + TS โ Tambahkan tipe ke param route & meta