En aquest tema, aprendrem com integrar TypeScript amb Webpack per aprofitar els avantatges del tipatge estàtic en els nostres projectes JavaScript. TypeScript ens ajuda a detectar errors en temps de compilació, millorar la mantenibilitat del codi i proporcionar una millor experiència de desenvolupament.
- Configuració del Projecte
1.1. Instal·lació de TypeScript i ts-loader
Primer, necessitem instal·lar TypeScript i ts-loader
, que és un loader de Webpack per compilar fitxers TypeScript.
1.2. Creació del fitxer tsconfig.json
El fitxer tsconfig.json
és necessari per configurar el compilador TypeScript. Creem aquest fitxer a l'arrel del nostre projecte amb el següent contingut:
{ "compilerOptions": { "target": "es5", "module": "commonjs", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": ["src"] }
1.3. Actualització del fitxer de configuració de Webpack
Afegim ts-loader
a la configuració de Webpack per processar fitxers .ts
i .tsx
.
const path = require('path'); module.exports = { entry: './src/index.ts', module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/, }, ], }, resolve: { extensions: ['.tsx', '.ts', '.js'], }, output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, };
- Estructura del Projecte
2.1. Creació de la carpeta src
Creem una carpeta src
a l'arrel del projecte i afegim un fitxer index.ts
dins d'aquesta carpeta.
2.2. Exemple de codi TypeScript
Afegim un exemple de codi TypeScript al fitxer index.ts
per verificar que la configuració funciona correctament.
- Construcció del Projecte
3.1. Comanda de construcció
Afegim un script al fitxer package.json
per construir el projecte amb Webpack.
3.2. Executar la construcció
Executem la comanda de construcció per generar el bundle.
Si tot està configurat correctament, hauríem de veure un fitxer bundle.js
generat a la carpeta dist
.
- Exercicis Pràctics
Exercici 1: Afegir una interfície
- Crea una interfície
Person
amb les propietatsfirstName
ilastName
. - Modifica la funció
greet
per acceptar un objecte de tipusPerson
i retorna un missatge de benvinguda amb el nom complet.
Solució
interface Person { firstName: string; lastName: string; } function greet(person: Person): string { return `Hello, ${person.firstName} ${person.lastName}!`; } const user: Person = { firstName: 'John', lastName: 'Doe' }; console.log(greet(user));
Exercici 2: Utilitzar classes
- Crea una classe
Student
que implementi la interfíciePerson
. - Afegeix un mètode
getFullName
que retorni el nom complet de l'estudiant. - Modifica la funció
greet
per utilitzar una instància deStudent
.
Solució
interface Person { firstName: string; lastName: string; } class Student implements Person { constructor(public firstName: string, public lastName: string) {} getFullName(): string { return `${this.firstName} ${this.lastName}`; } } function greet(person: Person): string { return `Hello, ${person.firstName} ${person.lastName}!`; } const student = new Student('Jane', 'Doe'); console.log(greet(student));
- Resum
En aquest tema, hem après com integrar TypeScript amb Webpack, des de la instal·lació de les dependències necessàries fins a la configuració del fitxer tsconfig.json
i el fitxer de configuració de Webpack. També hem vist exemples pràctics de codi TypeScript i hem realitzat exercicis per reforçar els conceptes apresos.
Amb aquesta base, estem preparats per aprofitar els avantatges de TypeScript en els nostres projectes Webpack, millorant la qualitat i mantenibilitat del nostre codi.
Curs de Webpack
Mòdul 1: Introducció a Webpack
- Què és Webpack?
- Configuració de Webpack
- Fitxer de Configuració de Webpack
- Construcció Bàsica amb Webpack
Mòdul 2: Conceptes Bàsics
Mòdul 3: Configuració Avançada
Mòdul 4: Eines de Desenvolupament
Mòdul 5: Optimització per a Producció
Mòdul 6: Integracions i Tècniques Avançades
- Integració amb Babel
- Integració amb TypeScript
- Ús de Webpack amb React
- Ús de Webpack amb Vue
- Plugins i Loaders Personalitzats
Mòdul 7: Projectes del Món Real
- Configuració d'un Projecte React
- Configuració d'un Projecte Vue
- Configuració d'un Projecte Node.js
- Migració de Projectes Heretats a Webpack