我正在尝试安装模块log4ts,它的Layouts和Appenders有一些可选的类型定义。这些实现不包括在主log4ts.d.ts定义文件中。但是,它们是单独包含的,例如,这里是ConsoleAppender的定义。我的问题是,如何安装这些额外的定义文件?
以下是我试图做的:
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"
}
}
根据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 { }
您是否也尝试过使用--global参数安装它?