2017-01-13 3 views
3

Ich habe ein npm-Paket mit schlecht geschriebenen, veralteten Typings. Ich habe meine eigenen Typings geschrieben und jetzt frage ich mich, ob ich die Originaltypen aus dem npm-Paket irgendwie ausschließen kann. Es ist keine einfache Erweiterung der Schnittstellen, die Originale sind an dieser Stelle im Grunde Müll.Ausschließen/überschreiben npm-zur Verfügung gestellte Typisierung

Die Verwendung der Ausschlussliste in tsconfig.json funktioniert natürlich nicht für diesen Zweck, da sie weiterhin Dateien von node_modules lädt, selbst wenn Sie diesen Ordner ausschließen.

+0

Sie können versuchen, [paths] (https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping) in 'tsconfig.json' zu verwenden, um Typings für jedes Modul als zu überschreiben beschrieben in [diese Antwort] (http://stackoverflow.com/a/41559327/43848) – artem

+0

Das ist die richtige Antwort. Ich habe diese Frage nicht mit Google gefunden, weil ich alle möglichen Formulierungen versucht habe, aber anscheinend nicht diese. –

+0

Fühlen Sie sich frei, es als Antwort hinzuzufügen, und ich werde es akzeptieren –

Antwort

1

Sie können das gewünschte Verhalten mit der Pfade Option im TSConfig bekommen es in etwa so aussehen könnte:

{ 
    "compilerOptions": { 
     ... 
     "paths": { 
      "*": [ 
       "src/*", 
       "declarations/*" 
      ] 
     } 
    }, 
    ... 
} 

Mit dieser Konfiguration Typoskript für Module in src sieht (es sollten alle die App Quelle sein) und auch in Deklarationen, im Deklarationsordner lege ich normalerweise meine extra benötigten Deklarationen ab.

Um die Typisierungen eines Knotenmodul außer Kraft gibt es zwei Möglichkeiten:

  1. Ort einen Ordner wie das Modul in den Erklärungen Ordner mit dem Namen, eine Datei namens index.d.ts für die Typisierungen enthalten

  2. Ort eine Deklarationsdatei, wie das Modul mit dem Namen, in den Erklärungen Ordner

Als Arbeitsbeispiel Sie einen Blick auf dieses Repo nehmen https://github.com/kaoDev/react-ts-sample

Verwandte Themen