Bonjour,
Etant noob en typescript (venant de PHP et javascript le passage à un language un peu typé est assez heu compliqué ),
je suis entrain de suivre un cours écrit sur ... Typescript, et dans le cadre de la mise en pratique, il est demandé de créer un annuaire d’entreprise permettant de gérer les employés d’une société, et ce en suivant l'architecture REST et le pattern MVC.
Et pour l'instant, je ne comprends pas la méthode register (je ne suis pas très à l'aise avec la syntaxe liée à la programmation fonctionnelle, surtout quand on utilise une fonction comme paramètre d'une méthode):
la syntaxe me semble très abstraite et peu lisible.
Le role de cette méthode est le suivant:
Ajoutez une méthode register acceptant un paramètre correspondant au type d’un constructeur de contrôleur. Cette méthode instancie le contrôleur et l’ajoute dans la liste des contrôleurs.
Code :
- register(ctor: new () => unknown) {
- this.#controllers.set(ctor.name, new ctor());
- }
|
Pourriez-vous m'aider à décortiquer le paramètre de la fonction et comment ce paramètre est utilisé ?
le reste du code ne me pose pas de problème.
le code complet de la classe est le suivant:
Code :
- export class ControllerFactory {
- static #instance: ControllerFactory;
- readonly #controllers: Map<string, unknown> = new Map();
- static getInstance(): ControllerFactory {
- if(!this.#instance) {
- this.#instance = new ControllerFactory();
- }
- return this.#instance;
- }
- register(ctor: new () => unknown) {
- this.#controllers.set(ctor.name, new ctor());
- }
- get(controllerName: string) {
- const controller = this.#controllers.get(controllerName);
-
- if(!controller) {
- throw new Error(`Unknown controller: ${controllerName}`);
- }
- return controller;
- }
- }
|
merci pour votre aide
Message édité par tompouss le 18-02-2024 à 19:20:22
---------------
collectionneur de pâtes thermiques