2016-07-29 44 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