En aquest tema, explorarem com organitzar i modularitzar el codi en TypeScript utilitzant mòduls i espais de noms. Això ens permetrà mantenir el codi net, organitzat i fàcil de mantenir.
Mòduls
Els mòduls en TypeScript són una manera de dividir el codi en diferents fitxers i importar-los quan sigui necessari. Això ajuda a mantenir el codi més organitzat i facilita la reutilització de components.
Importació i Exportació de Mòduls
Exportació
Per exportar una funció, classe, variable o interfície des d'un fitxer, utilitzem la paraula clau export
.
// mathUtils.ts export function add(a: number, b: number): number { return a + b; } export const PI = 3.14;
Importació
Per importar elements d'un altre fitxer, utilitzem la paraula clau import
.
// main.ts import { add, PI } from './mathUtils'; console.log(add(2, 3)); // 5 console.log(PI); // 3.14
Exportació per Defecte
També podem exportar un element per defecte utilitzant export default
.
Per importar un element exportat per defecte, no utilitzem claus.
Importació de Tot el Mòdul
Podem importar tot el contingut d'un mòdul utilitzant l'asterisc *
i un àlies.
// main.ts import * as MathUtils from './mathUtils'; console.log(MathUtils.add(2, 3)); // 5 console.log(MathUtils.PI); // 3.14
Espais de Noms
Els espais de noms (namespaces) són una altra manera d'organitzar el codi en TypeScript. S'utilitzen per agrupar funcions, classes, variables, etc., sota un mateix nom.
Creació d'un Espai de Noms
Per crear un espai de noms, utilitzem la paraula clau namespace
.
namespace Geometry { export function areaOfCircle(radius: number): number { return Math.PI * radius * radius; } export function circumferenceOfCircle(radius: number): number { return 2 * Math.PI * radius; } }
Utilització d'un Espai de Noms
Per accedir als elements d'un espai de noms, utilitzem el nom de l'espai de noms seguit d'un punt.
console.log(Geometry.areaOfCircle(5)); // 78.53981633974483 console.log(Geometry.circumferenceOfCircle(5)); // 31.41592653589793
Espais de Noms i Mòduls
Els espais de noms també es poden utilitzar dins de mòduls. Això permet una millor organització del codi.
// geometry.ts export namespace Geometry { export function areaOfRectangle(width: number, height: number): number { return width * height; } } // main.ts import { Geometry } from './geometry'; console.log(Geometry.areaOfRectangle(10, 5)); // 50
Exercicis Pràctics
Exercici 1: Crear i Utilitzar un Mòdul
- Crea un fitxer
stringUtils.ts
i exporta una funciócapitalize
que capitalitzi la primera lletra d'una cadena. - Importa i utilitza aquesta funció en un fitxer
main.ts
.
Solució
// stringUtils.ts export function capitalize(str: string): string { return str.charAt(0).toUpperCase() + str.slice(1); } // main.ts import { capitalize } from './stringUtils'; console.log(capitalize('hello')); // Hello
Exercici 2: Crear i Utilitzar un Espai de Noms
- Crea un espai de noms
MathOperations
amb funcions per sumar, restar, multiplicar i dividir dos nombres. - Utilitza aquestes funcions en un fitxer
main.ts
.
Solució
// mathOperations.ts export namespace MathOperations { export function add(a: number, b: number): number { return a + b; } export function subtract(a: number, b: number): number { return a - b; } export function multiply(a: number, b: number): number { return a * b; } export function divide(a: number, b: number): number { if (b === 0) { throw new Error('Division by zero'); } return a / b; } } // main.ts import { MathOperations } from './mathOperations'; console.log(MathOperations.add(10, 5)); // 15 console.log(MathOperations.subtract(10, 5)); // 5 console.log(MathOperations.multiply(10, 5)); // 50 console.log(MathOperations.divide(10, 5)); // 2
Conclusió
En aquest tema, hem après com utilitzar mòduls i espais de noms per organitzar el codi en TypeScript. Els mòduls ens permeten dividir el codi en diferents fitxers i importar-los quan sigui necessari, mentre que els espais de noms ens ajuden a agrupar funcions, classes i variables sota un mateix nom. Amb aquests conceptes, podem mantenir el nostre codi més net, organitzat i fàcil de mantenir.
Curs de TypeScript
Mòdul 1: Introducció a TypeScript
- Què és TypeScript?
- Configuració de l'entorn de TypeScript
- Tipus bàsics
- Anotacions de tipus
- Compilació de TypeScript
Mòdul 2: Treballant amb Tipus
Mòdul 3: Tipus Avançats
Mòdul 4: Funcions i Mòduls
- Tipus de Funció
- Paràmetres Opcional i per Defecte
- Paràmetres Rest
- Mòduls i Espais de Noms
- Decoradors
Mòdul 5: Programació Asíncrona
Mòdul 6: Eines i Millors Pràctiques
- Linting i Formatació
- Proves de Codi TypeScript
- TypeScript amb Webpack
- TypeScript amb React
- Millors Pràctiques