Typescript 类型声明文件和调用签名错误

Typescript 类型声明文件和调用签名错误,typescript,Typescript,由于slug模块缺少官方的d.ts文件,我在尝试工作时遇到了各种各样的错误 首先,这里是我导入模块的文件 import * as slug from "slug" // Had to create a custom d.ts empty file to avoid compile error as no official definition file existed let slugify = function (data: string): string { let slugifi

由于slug模块缺少官方的d.ts文件,我在尝试工作时遇到了各种各样的错误

首先,这里是我导入模块的文件

import * as slug from "slug" // Had to create a custom d.ts empty file to avoid compile error as no official definition file existed

let slugify = function (data: string): string {
    let slugified: string = slug('ééé aaa ooo') // error here

    return slugified

}

export default slugify
下面是我必须创建的空d.ts文件,以防止从编译器导入错误消息:

declare module "slug" {

}
slug上出现了新问题('俎俎俎aaa ooo'):


我如何解决这个问题?我应该在d.ts文件中添加“假”内容吗?

编译器需要知道slug是如何工作的,您可以通过从定义文件中的模块导出该函数的声明(表示slug在JavaScript中的外观)让它知道

这里有一种方法:

declare module "slug" {
    interface SlugOptions {
        lower?: boolean;
        // ...add the other options here...
    }

    function slug(val: string, optionsOrReplacement?: SlugOptions | string): string;

    export = slug;
}
我认为导入此库的唯一方法是使用
require
,因为它是js代码中的命名/默认导出:

import slug = require("slug");

这不是导入try
declare var slug
Thank,而是一个精心设计的解决方案。然而,我使用了简单的方法,并使用了一个简单的require导入。
import slug = require("slug");