2016-07-29 40 views
0

我正在嘗試安裝模塊log4ts,它的Layouts和Appender有一些可選的類型定義。這些實現不包含在主要的log4ts.d.ts定義文件中。但是,它們是分開包含的,例如,here is the ConsoleAppender definition。我的問題是,我如何安裝這些額外的定義文件?如何安裝打印稿模塊的附加定義?

這裏是什麼,我試圖做的事:

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

這讓我導入在這個主定義的類型:

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

現在試圖安裝一個額外的類型定義:

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

嘗試導入:

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

這兩個給錯誤消息: 「模塊log4ts沒有出口成員 '是ConsoleAppender'」

typings.json,經過上面的安裝命令,看起來像:

{ 
    "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" 
    } 
} 

回答

1

根據log4ts/ConsoleAppender.d.ts你爲了一個默認的出口

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

因此,對於你的代碼工作,你只需要導入默認的導出。

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

謝謝,我沒有意識到導入類型之間的區別。對於其他人的參考,這裏解釋類型:https://www.typescriptlang.org/docs/handbook/modules.html#import – Brad

0

有你嘗試使用--global參數安裝它?

+0

是的,但會導致錯誤:「試圖編譯‘log4ts。’作爲一個全球性的模塊,但它看起來像一個外部模塊,您將需要刪除全局選項以繼續」 – Brad