2016-07-29 17 views
0

Ich versuche, das Modul log4ts zu installieren, das einige optionale Typdefinitionen für seine Layouts und Appender enthält. Diese Implementierungen sind nicht in der Hauptdefinitionsdatei log4ts.d.ts enthalten. Sie sind jedoch separat eingeschlossen, beispielsweise here is the ConsoleAppender definition. Meine Frage, wie installiere ich diese zusätzlichen Definitionsdateien? HierWie installiere ich zusätzliche Definitionen eines Typoskript-Moduls?

ist das, was ich zu tun versucht:

npm install log4ts --save 
typings install npm:log4ts/build/log4ts.d.ts --save --global 

Dies erlaubt mir, die Typen zu importieren, die in dieser Haupt Definition sind:

// Works! 
import { Logger, LoggerConfig } from "log4ts"; 

nun eine zusätzliche Typdefinition zu installieren versuchen:

typings install npm:log4ts/build/appenders/ConsoleAppender.d.ts --save 

Der Versuch, Import:

import { ConsoleAppender } from "log4ts"; 
import { ConsoleAppender } from "log4ts/ConsoleAppender"; 

dieser Beide geben die Fehlermeldung: "Modul log4ts hat keine exportierte Mitglied 'ConsoleAppender'"

Mein typings.json, nachdem die oben genannten Befehle installieren, wie folgt aussieht:

{ 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160602141332", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "log4ts": "npm:log4ts/build/log4ts.d.ts", 
    "node": "registry:dt/node#6.0.0+20160720070758", 
    "selenium-webdriver": "registry:dt/selenium-webdriver#2.44.0+20160317120654", 
    "source-map": "registry:dt/source-map#0.0.0+20160317120654", 
    "uglify-js": "registry:dt/uglify-js#2.6.1+20160316155526", 
    "webpack": "registry:dt/webpack#1.12.9+20160724112410" 
    }, 
    "dependencies": { 
    "log4ts": "npm:log4ts/build/appenders/ConsoleAppender.d.ts" 
    } 
} 

Antwort

1

Nach log4ts/ConsoleAppender.d.ts haben Sie einen Standardexport

export default class ConsoleAppender extends BaseAppender implements IAppender { 
    append(entry: LogEntry): void; 
    clear(): void; 
} 

Also, um für Ihren Code, den Sie nur den Standard-Export importieren müssen arbeiten.

import ConsoleAppender from "log4ts/ConsoleAppender"; // Without the { } 
+0

Danke, ich hatte den Unterschied zwischen den Importarten nicht erkannt. Als Referenz für andere werden die Typen hier erklärt: https://www.typescriptlang.org/docs/handbook/modules.html#import – Brad

0

Sie haben versucht es auch mit --global parameter zu installieren?

+0

Ja, aber das führt zu einem Fehler: „Versuchte zu kompilieren‚log4ts‘.. Als globales Modul, aber es sieht aus wie ein externes Modul Sie werden die globale Option entfernen müssen, um fortzufahren“ – Brad