2016-04-01 7 views
2

Ich arbeite an einem Projekt zu vermeiden, mit:Typoskript: Module registrieren und die Verwendung des `reference` Tag

  • Angular 2
  • Typoskript (transpiled offenbar ES5)
  • SystemJS

Ich bin neu in TS.

Ich habe einen Modullader gebaut, mit dem ich einige Module einfach programmieren und verwalten kann. Mit diesem System kann ich Module laden import mit:

import {something} from '[email protected]';

ich dies dank SystemJS tun kann. Meine Module sind bei SystemJS registriert (unter Verwendung von map und package). Aber der TypeScript-Compiler weiß nichts über diese Module. Wenn ich also meine glänzende npm start starte und wenn der Compiler startet, werden viele Fehler geworfen.

Ich möchte diese Module "registrieren", um diesen Nebeneffekt zu vermeiden.

Soweit ich weiß, brauche ich nicht .d.ts, weil meine Module direkt in TypeScript geschrieben werden. Ich habe ein paar Dinge über ///<reference> gelesen und ich mag es nicht wirklich.

Der Vorteil meiner kleinen Modullader ist, dass ich Modul direkt in einem anderen Modul verwenden kann. Ich muss nur import es egal, wo es sich befindet usw. Mit ///<reference>, muss ich auch einen relativen Pfad geben und das ist nicht mein Ziel.

Es wäre sehr cool, wenn ich in der Lage sein würde:

// configure a "path" in tsconfig.json 
"aliases": { 
    "/path/to/modules/folder": "modules" // <--- path:alias 
} 

// and in another file importing a module 
/// <reference path="modules/[email protected]" /> 
import {something} form '[email protected]'; 

//... 

Dank!

+1

Vielleicht [dieser Artikel] (http://blog.johnnyreilly.com/2015/02/hey-tsconfigjson-where-have-you-been.html) kann Ihnen helfen – tforgione

+1

Dieser Artikel ist wirklich nützlich. Danke vielmals. Leider benutze ich Webstorm. Wechseln zu Atom und in der Lage zu sein, 'filesGlob' zu verwenden, kann eine Lösung sein, aber ich würde gerne noch ein bisschen mehr graben, bevor ich meine dev env ändere :). (Ich habe gerade dieses [Problem] gefunden (https://github.com/Microsoft/TypeScript/issues/1927)) –

Antwort

1

Dank @DragonRock, this issue und diese roadmap, würde dies scheint unmöglich zu sein.

Gerade jetzt.

Wie man auf dem Typoskript Roadmap sehen kann, ist die Version 2.0 wird bietet globs (siehe this issue, again !). Wir können statische Dateien in unserem tsconfig.json stattdessen für <reference> hinzufügen-sie in unseren .ts Dateien.

Wie @DragonRock 's Artikel sagt, einige Editoren bieten bereits diese Funktion wie Atom.

Vielen Dank.

+1

AFAIK, die '_references.ts' Datei tut genau das, Sie können Dateien auflisten, die global referenziert werden sollen. –

Verwandte Themen