J'essaie ici d'étendre un espace de nom à partir des types de package, @typings/fullcalendar
.Étendre un espace de noms à partir des types de package
/// <reference path="./types/fullcalendar" />
import * as fullcalendar from 'fullcalendar';
import { TimeGrid } from 'fullcalendar';
// TimeGrid and fullcalendar.views are used then
originaux typages peuvent être vus here.
Et fullcalendar-custom.d.ts est
import * as FC from 'fullcalendar';
export as namespace FC;
declare class TimeGrid { prepareHits() }
declare let views: any;
Il en résulte des erreurs de type, il est donc évident que l'espace de noms fullcalendar
n'a pas été étendu correctement:
TS2305: Module « » .../node_modules/@ types/fullcalendar/index "'n'a aucun membre exporté' TimeGrid '.
TS2339: La propriété 'vues' n'existe pas sur le type 'typeof ".../node_modules/@ types/ fullcalendar/index"'.
Comment cela devrait-il être fait de la bonne façon?
Est-il possible d'éviter la directive reference
ici, étant donné que le répertoire types
est spécifié dans typeRoots
?
L'application est fournie avec Webpack et awesome-typescript-loader, ce qui fait que le comportement peut différer des autres méthodes de compilation. À un moment donné, les types semblaient bien fonctionner dans les inspections d'EDI (WebStorm), mais il y avait quand même des erreurs de type lors de la compilation.
Merci, j'ai essayé d'éviter de réexporter si possible puisque je n'ai pas étendu le paquet lui-même à l'endroit où j'étend les typages, mais il fait le travail.Je me suis retrouvé avec 'déclarer classe Complimentary ... export par défaut origFC; '. Un espace de nom était correct pour TS mais a causé quelques problèmes de type pour IDE. –
estus