如何安装typescript模块的其他定义



我正在尝试安装模块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参数安装它?

最新更新