我在基于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
字段。
如何为新功能模块编写打字?
答案 0 :(得分:2)
这不起作用。 import * as X from 'y'
语法创建模块命名空间对象。它意味着不可赎回。
您应该使用语法:import Cleave = require('cleave.js')
代替。
要了解如何撰写打字,请查看手册中的http://www.typescriptlang.org/docs/handbook/declaration-files/templates.html及相关章节。