【问题标题】:Type definitions: Create instance of module类型定义:创建模块实例
【发布时间】:2018-02-24 22:27:21
【问题描述】:

我在基于 Typescript 的应用程序中使用了出色的 Cleave.js 库。 Cleave.js 使用如下:

import * as Cleave from 'cleave.js';

new Cleave(element).[whatever]

为了帮助开发,我正在为 Cleave.js 开发类型,但是,我在 Typescript 中找不到允许我指定上述构造的模式。

当我使用export class Cleave { ...} export default Cleave;

在上面的 Typescript 抱怨的情况下:

TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.

当我将 Cleave 导入为 import Cleave from 'cleave.js' 时,打字稿试图在导入的对象上找到显然不存在的 default 字段。

如何为新模块编写类型?

【问题讨论】:

标签: typescript typescript-typings


【解决方案1】:

这不起作用。 import * as X from 'y' 语法创建一个模块命名空间对象。它意味着不可调用。

您应该改用语法:import Cleave = require('cleave.js')

要了解如何编写类型,请查看手册中的http://www.typescriptlang.org/docs/handbook/declaration-files/templates.html 和相关部分。

【讨论】:

  • 我应该如何写打字,这是我的终极问题?
  • 已更新链接:)
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2022-11-21
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 2018-11-23
  • 1970-01-01
相关资源
最近更新 更多