【问题标题】:Creating Typescript definition files from module.exports = js files从 module.exports = js 文件创建 Typescript 定义文件
【发布时间】:2017-12-02 02:30:21
【问题描述】:

我正在尝试为format-duration 创建一个 Typescript 定义文件:

module.exports = (ms) => {
  let { days, hours, minutes, seconds } = parseMs(ms)
  seconds = addZero(seconds)
  if (days) return `${days}:${addZero(hours)}:${addZero(minutes)}:${seconds}`
  if (hours) return `${hours}:${addZero(minutes)}:${seconds}`
  return `${minutes}:${seconds}`
}

我尝试了几个不同的声明文件:

export default function (ms: number): string;

export default function formatDuration(ms: number): string;

export function formatDuration(ms: number): string;

虽然我在运行应用程序时确实从他们那里获得了正确的类型信息,但我得到了一个错误:

import formatDuration from "format-duration";

const formatted = formatDuration(123456);

Exception has occurred: TypeError TypeError: format_duration_1.default is not a function

如何正确定义此类 javascript 库的类型?

【问题讨论】:

标签: typescript definitelytyped


【解决方案1】:

看来正确的声明文件是这样的:

declare function formatDuration(ms: number): string;

export = formatDuration;

它是这样导入的:

import formatDuration = require("format-duration");

【讨论】:

    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多