Typescript 为可实例化的模块编写d.ts文件的打字脚本

Typescript 为可实例化的模块编写d.ts文件的打字脚本,typescript,typescript-typings,Typescript,Typescript Typings,我在为现有模块创建声明文件时遇到问题 使用javascript时,使用以下语法导入模块: var Library = require('thirdpartylibs'); var libInstance = new Library(); 我已经创建了名为thirdpartylibs.d.ts的d.ts文件,并添加了以下内容: declare module 'thirdpartylibs'{ export class Library{} } 在我的index.ts文件中: import

我在为现有模块创建声明文件时遇到问题

使用javascript时,使用以下语法导入模块:

var Library = require('thirdpartylibs');
var libInstance = new Library();
我已经创建了名为
thirdpartylibs.d.ts的d.ts文件,并添加了以下内容:

declare module 'thirdpartylibs'{
   export class Library{}
}
在我的
index.ts
文件中:

import * as Library from 'thirdpartylibs'
let libInstance = new Library() // <--- error here
import*作为库从'thirdpartylibs'
让libInstance=new Library()//试试这个

declare module 'thirdpartylibs'{
   class Library {
      ...
   }
   export = Library
}
导入

import Library = require('thirdpartylibs')
const libInstance = new Library()

注意:这使
成为导出。您使用的语法是“命名导出”

感谢您使用您的解决方案回复我得到的
模块“thirdpartylibs”解析为非模块实体,无法使用此构造导入。
。有什么线索吗?试试
import Library=require('thirdpartylibs')
。(注意:
import
,而不是
const
。打字应该是可用的)@kulaka编辑了我的答案(虽然
import*as…
似乎不适用于TS 2.0,而不是1.8)。奇怪的是,为什么它不适用于“…”
中的
import*as库?执行上述声明的正确方法是什么?
import*as X from'X
是ES6导入语法。ES6导入语法仅允许您导入模块。仅导入类或函数时,不能使用此语法。然而,有一种方法可以通过在
d.ts
名称空间库{}