Ich verwende joi und @types/joi mit TypeScript. Joi verfügt über eine extend-Methode, die es ermöglicht, joi zu erweitern, indem eine neue Instanz zurückgegeben wird, ohne dass die ursprüngliche joi-Bibliothek geändert wird. Ich habe damit eine erweiterte Instanz erstellt.Wie erweitert man ein Modul von Npm mit TypeScript?
Definition für diese erweiterte Instanz zu erstellen, habe ich versucht, Module Augmentation
wie here unter Verwendung von Code:
declare module 'joi' {
// Add a new Schema type which has noChildren() method.
interface CustomSchema extends ObjectSchema {
noChildren(): this;
}
}
jedoch, wie erwartet, das es durch Vermehrung ursprüngliche Definition ändert. Ich möchte Definitionen für die erweiterte Instanz erstellen, die alles vom Original erbt, ohne es zu modifizieren.
erweitert Auch Joi
erstellt wie folgt:
import * as Joi from 'joi';
const JoiExtended = Joi.extend({...some implementation...})
// How to export?
// export * from 'Joi' ---> In this case, original non-extended Joi is exported
// export default JoiExtended ---> Imported `Joi` reports: Cannot find namespace 'Joi'
- Wie kann ich erweiterte Definitionen erstellen?
- Wie exportiert erweiterte
Joi
?
P.S. Ich lerne TypeScript und suchte nach einer Antwort für diese Frage, konnte aber keine Antwort finden, vielleicht, weil ich nicht an die Typoskript-Terminologie gewöhnt bin und nach falschen Begriffen suche.