gpt4 book ai didi

Typescript 定义、ES6 类和构造函数

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:06 25 4
gpt4 key购买 nike

我有一个 TypeScript 项目,我想在其中使用来自 npm 的 libmarkov。它提供了一个名为 Generator 的 ES6 可导入类。您可以通过 new Generator('some text') 使用它。

在我的本地项目中,我创建了一个文件typedefs/libmarkov.d.ts:

export class Generator {
constructor(text: string);
generate(depth: number);
}

我使用 typings 安装它:typings install --save file:./typedefs/libmarkov.d.ts

但是,这个:let generator = new Generator('Foo Bar Baz');

...生成此编译器错误:

Error:(5, 21) TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.

我可以更改我的构造函数:constructor(text: string) {};

...但这给出了:

Error:(2, 31) TS1183: An implementation cannot be declared in ambient contexts.

如果重要的话,我的目标是 TS 2.0。

最佳答案

因为这是一个 js 库,我怀疑你用类似的东西加载它

import {Generator} from "libmarkov"

在这种情况下,您的外部模块定义必须如下所示

declare module "libmarkov" {

export class Generator {
constructor(text: string);
generate(depth: number);
}
}

编辑定义错误; libmarkov 似乎使用 a default export .

declare module "libmarkov" {

export default class Generator {
constructor(text: string);
generate(depth: number);
}
}

导入将是

import Generator from 'libmarkov'

关于Typescript 定义、ES6 类和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39454067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com