En Typescript et Javascript, pour accéder à une classe ou méthode d’un autre fichier, il est nécessaire d’importer cette class ou fichier.

Voici comment ça fonctionne:

Dans Typescript et Javascript, il est courant de travailler avec plusieurs fichiers pour organiser son code de manière plus lisible et maintenable. Pour cela, on utilise les fonctionnalités d'importation et d'exportation de ces langages.

Pour importer une classe, une fonction, une variable ou même un simple morceau de code depuis un autre fichier, il faut utiliser le mot-clé import suivi du nom de l'élément à importer, puis du chemin du fichier où cet élément est défini. Par exemple, si vous avez défini une classe MaClasse dans un fichier nommé monFichier.ts, vous pouvez l'importer dans un autre fichier en utilisant import { MaClasse } from './monFichier';.

D'autre part, pour rendre une classe, une fonction, une variable ou un morceau de code disponible pour être importé dans d'autres fichiers, vous devez utiliser le mot-clé export devant sa déclaration. Par exemple, export class MaClasse { ... } ou export function maFonction() { ... }.

Ces fonctionnalités d'importation et d'exportation sont essentielles pour structurer et organiser votre code de manière efficace, en permettant de partager du code entre différents fichiers et modules.

export default est une autre syntaxe que vous pouvez utiliser pour exporter des éléments de votre code. Contrairement au mot-clé export utilisé seul, export default ne nécessite pas d'utiliser des accolades lors de l'importation de l'élément. En outre, vous pouvez nommer l'élément importé comme vous le souhaitez. Par exemple, si vous avez un fichier monFichier.ts avec export default class MaClasse { ... }, vous pouvez l'importer avec import UneAutreClasse from './monFichier';. Notez que chaque module ou fichier ne peut avoir qu'un seul export default.

Exemple rapide vue en classe:

export default class Monster implements IDamageable  {
    takeDamage(): void {
        console.log("I took damage");
    }
}
import Monster from "./models/monster";

const monster = new Monster();
monster.takeDamage();