Typescript 为可实例化的模块编写d.ts文件的打字脚本
我在为现有模块创建声明文件时遇到问题 使用javascript时,使用以下语法导入模块: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
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
:名称空间库{}