无法调用类型缺少调用签名的表达式,而它有签名

卢帕克斯

我正在尝试为我通过 npm 安装的模块定义类型。

这是导出的模块我宁愿不更改此文件,因为我想在不引入 BC 的情况下合并回原始存储库

/**
 * Given a number, return a zero-filled string.
 * From http://stackoverflow.com/questions/1267283/
 * @param  {number} width
 * @param  {number} number
 * @return {string}
 */
module.exports = function zeroFill (width, number, pad) {
  if (number === undefined) {
    return function (number, pad) {
      return zeroFill(width, number, pad)
    }
  }
  if (pad === undefined) pad = '0'
  width -= number.toString().length
  if (width > 0) return new Array(width + (/\./.test(number) ? 2 : 1)).join(pad) + number
  return number + ''
}

这是我为这个文件写的定义

declare module "zero-fill"{
    export default function zeroFill(width:number, num:number, pad?:string|number):string;
    export default function zeroFill(width:number):{(num:number, pad?:string|number):string};
}

这是一个示例用法:

import * as zeroFill from "zero-fill";
zeroFill(2,0);

让我困惑的是编译器都给了我这个错误:

Cannot invoke an expression whose type lacks a call signature. Type 'typeof "zero-fill"' has no compatible call signatures.

同时它编译打字稿,我看到它在浏览器中运行。似乎是什么问题?

卢帕克斯

这是我最终做的

定义:

declare module "zero-fill" {
    function zeroFill(width:number, num:number, pad?:string|number):string
    function zeroFill(width:number):{(num:number, pad?:string|number):string}
    export  = zeroFill
}

用法:

import zeroFill = require("zero-fill")
zeroFill(4, 1) // '0001'
zeroFill(10, 55) // '0000000055'
zeroFill(1, 1) // '1'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法调用类型缺少调用签名的表达式。类型没有兼容的调用签名

错误 - PerfectScrollbar : 无法调用类型缺少调用签名的表达式。“号码”类型没有兼容的呼叫签名

Typescript:无法调用类型缺少调用签名的表达式。类型“号码”没有兼容的呼叫签名

错误TS2349:无法调用类型缺少调用签名的表达式。类型'{; }'没有兼容的呼叫签名

无法调用类型缺少调用签名的表达式。类型没有兼容的呼叫签名2349

无法调用类型缺少调用签名的表达式。类型“ UserModel”没有兼容的呼叫签名

类型Array的打字稿错误:-无法调用类型缺少调用签名的表达式

错误:无法调用类型缺少调用签名的表达式

TS2349:无法调用类型缺少调用签名的表达式

Typescript 无法调用类型缺少调用签名的表达式

错误TS2349:无法调用类型缺少调用签名的表达式

Angular中的html2canvas-无法调用类型缺少调用签名的表达式

无法调用类型缺少调用签名、map 的表达式

AngularX TS错误无法调用类型缺少调用签名的表达式

打字稿。过滤功能属性和“无法调用类型缺少调用签名的表达式”。

TypeScript编译错误无法调用类型缺少调用签名的表达式

Typescript编译器无法调用类型缺少调用签名的表达式

TypeScript错误:无法调用类型缺少调用签名的表达式

无法调用类型缺少调用签名的表达式以返回已解决的函数

错误:无法调用类型缺少调用签名的表达式。(行为主题)

无法调用类型缺少调用签名的表达式 TypeScript 错误

如何解决此错误,无法调用类型缺少调用签名的表达式

TypeScript 无法调用类型缺少调用签名的表达式

如何解决错误:(4, 1) TS2349:无法调用类型缺少调用签名的表达式。类型“typeof moment”没有兼容的调用签名

使用 typescript-2.x 的承诺给出错误:无法调用类型缺少调用签名的表达式

类的Set引发无法使用BehaviorSubject和Observable调用类型缺少调用签名的表达式

TS:在动态定义时无法调用其类型缺少调用签名的表达式,但它可以工作

打字稿命名函数的不同行为。错误无法调用类型缺少调用签名的表达式

打字稿,具有 2 种类型参数和返回值的函数:无法调用类型缺少调用签名的表达式