2017-08-04 4 views
2

Heyho,Typoskript: Geben Sie ein Verzeichnis für Modultyp suchen Definitionen

ich einige Javascript-Bibliotheken in meinem Typoskript Code verwenden möchten, für die es keine Typisierungen in npm. Also schrieb ich die Typings selbst und legte sie in ein Verzeichnis definitions in meinem Quellbaum. Ich konnte jedoch kein Typoskript abrufen, um in diesem Verzeichnis nach diesen Modulen zu suchen.

Meine Verzeichnisstruktur sieht wie folgt aus:

+-node_modules 
| | 
| +-moduleA 
| | 
| +-moduleB 
| 
+-src 
| | 
| +-definitions 
| | | 
| | +-moduleA.d.ts 
| | | 
| | +-moduleB.d.ts 
| | 
| +-ts 
| | 
| + ... all typescript code ... 
| 
+-tsconfig.json 

Ich habe versucht, einschließlich der Module in der definitions -directory mit

  • include
  • files
  • typeRoots
  • paths

Allerdings funktionierte nichts davon.

Kann mir jemand sagen, wie man Typoskripte bekommt, um diese Typisierungen einzubeziehen?

PS: Warum ist das TypeScript-Modul so kompliziert ???

Antwort

2
{ 
    "compilerOptions": { 
    "typeRoots": [ 
     "./node_modules/@types", 
     "./some-custom-lib" 
    ] 
    } 
} 

der String-Array typeRoots ist nur dafür. Fügen Sie neben Ihrem normalen "node_modules/@ type" einen benutzerdefinierten Typisierungsordner hinzu.

+0

Dies scheint zu funktionieren, solange ich keine Import-Anweisungen in meiner Moduldefinition habe. Aber ohne den Import kann ich mein Modul nicht korrekt eingeben. – jsf

+0

Dies funktioniert nicht, da typeRoots Typensätze im Skriptformat anstelle des Modulformats erwarten. – unional

+0

Ist das irgendwo dokumentiert? Ich konnte keine Informationen über solche Dinge finden. – jsf

0

Sie können sie mit dem triple-slash Directives einschließen, um den Compiler anzuweisen, sie zu verwenden.

z. Erstellen Sie eine index.d.ts Datei und legen Sie es Ihren Definitionen Ordner. Dort können Sie jede von Ihnen vorgenommene benutzerdefinierte Eingabe einschließen. Es könnte

/// <reference path="react.patch.d.ts" /> 
/// <reference path="custom-typings.d.ts" /> 

wie dieser Blick in den Typisierungen die erste Zeile Datei in

/// <reference types="nameOfIt" /> 

Dann sein muss Ihre tsconfig.json Sie umfasst sie im files Feld z.B.

"files": [ 
    "definitions/index.d.ts" 
    ] 
Verwandte Themen