类型定义:创建模块实例

时间:2017-09-15 17:02:16

标签: typescript typescript-typings

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

import * as Cleave from 'cleave.js';

new Cleave(element).[whatever]

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

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

在上述Typecript抱怨的情况下:

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

当我导入Cleave时,import Cleave from 'cleave.js' typescript尝试在导入的对象上找到明显不存在的default字段。

如何为新功能模块编写打字?

1 个答案:

答案 0 :(得分:2)

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

您应该使用语法:import Cleave = require('cleave.js')代替。

要了解如何撰写打字,请查看手册中的http://www.typescriptlang.org/docs/handbook/declaration-files/templates.html及相关章节。