声明一个外部模块函数

hel*_*on3 3 typescript

我正在尝试声明一个没有现有类型的外部模块,但我遗漏了一些东西。

该库导出一个不带参数并返回一个字符串的函数。

我正在尝试在.d.ts文件中使用它来定义它:

declare module "cuid" {
    export function cuid(): string;
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我有 import * as cuid from 'cuid';

然而,在我使用它的行上,cuid()我收到一个错误:

error TS2349: Cannot invoke an expression whose type lacks a call signature.

Pal*_*leo 5

使用定义与 export function cuid

此语法与您的声明匹配:

import {cuid} from 'cuid';
Run Code Online (Sandbox Code Playgroud)

这是对 ES6 模块的一个很好的介绍。

或者使用一个定义 export =

尝试:

declare module "cuid" {
  function cuid(): string;
  export = cuid;
}
Run Code Online (Sandbox Code Playgroud)

...然后使用它:import cuid = require('cuid')

这是文档