Bunyan Logger打字稿配置Errror名为logger无法命名

时间:2017-02-26 15:08:57

标签: node.js typescript logging bunyan

我正在尝试为NodeJS项目配置Bunyan Logger。这个配置工作正常,直到我开始将我的项目转换为Typescript。

以下是在MyLogger.ts文件中配置记录器的配置功能:

import { createWriteStream } from 'fs'
import { stdSerializers, createLogger } from 'bunyan'
const pkg = require('../../package.json')

export default function (logLevel: string = 'debug', logFolder: string) {
  const logOptions = {
    serializers: stdSerializers,
    name: `${pkg.name}-${pkg.version}`,
    streams: [
      { level: 'error', stream: process.stderr },
      { level: logLevel, stream: process.stdout }
    ]
  }

  if (logFolder) {
    logOptions.streams.push(
      { level: logLevel, stream: createWriteStream(`${logFolder}/${pkg.name}.log`) })
  }

  const logger = createLogger ({
    name: logOptions.name,
    streams: logOptions.streams
  })

  return logger
}

现在当我编译打字稿时,我收到以下错误:

  

lib / config / MyLogger.ts(5,1):错误TS4058:返回导出的类型   函数已从外部模块使用或正在使用名称“Logger”   “项目文件夹/ node_modules / @类型/本仁/指数”   但无法命名。

我正在使用节点版本:6.9.2 Bunyan版:1.8.5 @ types / bunyan“:”0.0.35

任何帮助理解错误或如何解决这个问题都会很棒。 感谢。

1 个答案:

答案 0 :(得分:0)

根据此处的打字稿问题:TS4023

我通过添加导入来运行编译:

Source <- c(1, 1, 2)
Target <- c(2, 3, 3)
Source <- Source - 1
Target <- Target - 1
NetworkData <- data.frame(Source, Target)
simpleNetwork(NetworkData)

然后将返回类型添加到导出的函数// import Link from react-router <- this doesn't work import {Link} from react-router // <- this does