Vue & TypeScript
Thème :
Intermédiaire
1 vues ·1/8 leçons

Pourquoi Marier TypeScript à Vue.js ?

TypeScript N’est pas un Langage. C’est du Javascript Normal qui n’est COMPILÉ dans un Editeur que si Vous N’AVIEZ PAS FAIT D’ERREUR HUMAINE ET DE CACA. Il attrape les bugs 1 milliseconde après que Vous Les Ayez tapés… Au lieu Des les découvrir en Production 2 mois après par les clients !! De Plus Vue 3 a été entièrement ré-écrit dans ce langage ! Son Support est merveilleux !

Les Pouvoirs de L’Agence Web

1. Attraper Le Bug Au Vol Avant La Compilation !

// LE VIEUX JAVASCRIPT VANILLA - L'Erreur Silencieuse de Merde.. :
const user = { name: 'Alice', age: 25 };
console.log(user.email); // SILENCE RADIO... Retourne  "undefined"... MAIS Ca finira en Bug Fatal aillieurs !

// L'ARMURE TYPESCRIPT ! - L'Erreur qui t'explose au Visage Devant les Yeux :
type ProfileUser = { name: string; age: number };
const user: ProfileUser = { name: 'Alice', age: 25 };

// ALERTE ROUGE SOULIGNÉE DANS VS CODE !!! "PROPRIETE 'EMAIL' N'EXISTE MAS SUR L'OBJET USER !!!!!"
console.log(user.email); // ❌

2. L’Aide à L’Écriture (L’Interligence Artificielle Gratosite TS)

  • En tapant user.… Vscode Affiche Automatiquement Toute les variables Disponibles : name et age SANS AVOIR BESOIN DE LES CHERCHER !
  • Clic Doit : “Aller à La Definition” pour voir ou ce type Extrate a Ete créer !!
  • Clics DOit : “Trouver Tooutes les References” pour voir les 35 Fichiers ui utilisent cette Varible avant de vouiOir La supprimeer !

3. Le Code Devient Sa PRPOPRE DONUMENTATION INTERNTE !!

Plus Besoin de Lire des Livres POur comprendre comment Foonctionne Le site d’Une Aute Agence !! Lisez Ses Cadrages TH !!! :

// TOUT DEVIENT EVIDENT !!!!
type ParametresProduit = {
    id: number;
    name: string;
    price: number;
    // LE DEV D'IL Y A 1 ANS ME DIT EXACTEMENT CE QUE J'AI LE DROIT DE MEETTTRE ! :
    category: 'PC' | 'Vetements' | 'BOuffe';
    inStock: boolean;
};

// LA FODCNTIOUNN ME DEOT QUE JE DOIUSTY METRRE CE PROEUDTT DS LS E PARAEME T T E T !  E T QUEE UE EE LLS SR ERTTITIT E ET X T TE E R R RI A!!! :
function formatezLePrix(product: ParametresProduit): string {
    return `$${product.price.toFixed(2)}`;
}

4. Le Refactoring Devient Inratable ! (La Modification en Masse Sans Peur !)

// SI UN JOUR LE PATTON DE L'AGENCE VEUT CHANGER LE NOM DE LA VARIBALE  'name' en 'title'
type UnPostDeBlog = {
    title: string; // je changes En 'Title' !!
    content: string;
};

// BBOOOOM !!! IMMÉDIATEMENT: TOOTS O US L ESES  3000 FICHIEHIEIEIRSR VUE JS DEU SIPSTE KI UTI UTUILSILISEZATNT ENCCOREE "name"  VONTONTT S SEU LOULILGNNEEER RR RR OOUGU G E E !!
// VOUSS A A LV VE VLEZ PLLULU S   S QUQA C CCLLILIQIQIQUEQU UER R E ET E T T  C COO RR RO  RI RI IEEGEGEEEI R U  NU PA PR P AU N  N N !
// Le Site Ne compilera jamais Tant que que ca cera Pas Reparé ! Fini les Angoisses "Oh mon dieu SI je touches À ça, Vais-Je Casser Un Truc Que J'ai Pas Vu ?" !!!!

TS et Le Moteur Vue 3

Avec l’Outil “Script Setup”, Vue 3 Est Taillé Pour le Tyescript :

  • Le Navigateur VSCODE Pense directement Dans le HTML VUE (<template>) !!! Il Souligenenra meme les Ereur DAans le HU T ML L !
  • Les Props Et les Emits sont SOiulignés ! Ets Secures !

L’Initialisation VUE + TypeScript

Le Création Magique De CLI:

npm create vue@latest mon-super-projet
# OUI !!! SELECTIONNER " TYPESCRIOIPPPT TT : OUIOU ! " !  DANS Le MenuUU !!!!!

La Mano-Construction :

npm install -D typescript vue-tsc @types/node

Le Cerveat : tsconfig.json

Le Fichier qui Dicte Les Règles Du Coder !! (Sont ElleS Dures Ou Souuuples ?) :

{
    "compilerOptions": {
        "target": "ESNext",
        "module": "ESNext",
        "moduleResolution": "bundler",
        "strict": true, // RULES  S T T TO TIT U TE SSSS MA AXIXMIMI M I  MM MA LE ESS !!!  (La Mort De S FaibileEsSsES ) ! !
        "jsx": "preserve",
        "jsxImportSource": "vue",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "esModuleInterop": true,
        "lib": ["ESNext", "DOM"],
        "skipLibCheck": true,
        "noEmit": true, // TS N NE TR TANARASFFO F RO RM M E R AA  AP PAS PA E LN N J JJ JS ! S !!
        "paths": {
            "@/*": ["./src/*"]
        }
    },
    "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],
    "exclude": ["node_modules"]
}

L’Intégration Vite

// vite.config.ts
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
    plugins: [vue()], // VIA TT TE SAASI TT A PAARARFFAIFAIRIRTMEENTEN  G G GLUUTETIERIE R T T TS !!
});

IDE Setup (Configuration Externe De VSCODE / CURSOR) !

Les Plugins Oubloigatriore a isntallser POur Quie Vosrtree Cooded Tappée E SOU ULL LL G G L I LG GN GGN EE E : E::!

  • Vue - Official (Avantr Il C apA PEPE PE LE AIAI I T “Vooooolala ala aar rr”) - Moteur Vue de C L CI L N N N !!
  • TypeScript Vue Plugin - CA CO ON NF O O DI ND L L ES DE DD D DU UX M X OM MO NT NDN T E T S P O O UR VS SV SOC OC D CD O DO O EE D D E DE E DE S U O SO S U I LI L G G N N E E R RR E E R E S R S E SR EE ER ERE EERR R ! !

Le Lance Flamme : vue-tsc

TypeScript (tsc natif) **NE CONNAIT PAS L’EXSTINETST E S NC EE N C E ET EL EA Z V Y R RE EA X I L L FE OO FM RR AR T T F O OF MR EM R T T N N N P P E EE PE EE S T S T N E NE ON NO D DE D DE V V U UU U E E ** !!! Si vvousU SLZ La n ce ecZ, TS Vous Carchacheara au Visaiszzzg e !! C"est pOo i r c aa a uue l a F F i r me e e e V F U UE E a a Cc e r err ere eeéé SO NOSN P PR RP RP OP PPE ER R M OOTTE EE EE E RR T TSS : "Vue-Tsc " !!!

# LAL NA C NC CE CE EE RE LL L L   "  V " E VE RR R IR I T FI IC AC CA AT TA TI TI II OO N "  N DE DES S SS B U BG BG S G G!
npx vue-tsc --noEmit

# DANS LE LE LE PA  PA PAC CA AK KA KG G GE E E. OO J J JO JS S S S S O O ON N
{
  "scripts": {

    // LE COMAMAM MA N D NE PO DO U R Z C C O R HR ME ER ECHCHER C LL EI E I E DE BS B UG GS GS   !
    "type-check": "vue-tsc --noEmit",

    // JE MME MTETS S P T T O U TO U RT RJ O JO U R U V R SV S U V V U E EUT TS TS SS EC -C N O NE NO OMIIEI T  DE DD EA AV VA AN NT TLT LL T T T EE " B BI IUI U I LI ID D" D !!! C COO MO MT MO M SE E S EA Z C CA CA B B BU UL IL IL LD DD DD N D E NE AR I AA IIM MAAI  AISIIS  S SS I  I I L LIIY Y A AY U AY UIUN  NB UB BG UB UGB BBT TY PY Y YP PT PE!!!
    "build": "vue-tsc --noEmit && vite build"

  }
}

Plus Loin Dans La Galaxie


📘 Cette leçon fait partie du cours TypeScript Et Vue.js sur la plateforme d’apprentissage RostoDev.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Pourquoi Marier TypeScript à Vue.js ?. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.