我在一个Typescript项目中使用https://github.com/23/resumable.js,并且我正在尝试为它设置一个类型定义文件,因为没有明确键入的文件。我的第一稿草稿是https://github.com/23/resumable.js/pull/264。
使用此类型定义文件,我可以使用以下内容导入可恢复文件:
import Resumable = require('../../lib/resumable')
我也在项目中使用immutable.js,我可以从中导入属性:
import {OrderedMap} from 'immutable'
换句话说,不可变是一个模块。我已经尝试了各种方法在可恢复类型定义文件中声明一个模块,我可以让它进行编译 - 例如:
//.d.ts file
declare module 'resumable' {
export class Resumable {...
//.ts file
import {Resumable} from 'resumable'
然后应用程序抛出关于Resumable不是函数的运行时错误。据我所知,这里的区别是resumable.js导出Resumable对象的构造函数,而Immutable(和jquery)导出工厂:
// Resumable
module.exports = Resumable;
//Immutable
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.Immutable = factory()
}(this, function () {
鉴于可恢复出口的方式,是否可以修改我的类型定义文件以将其导出为模块?
答案 0 :(得分:0)
据我所知,resumable.js导出Resumable对象的构造函数,
正确的做法是使用export =
,我发现这正是您所做的事情:https://github.com/matthewdenobrega/resumable.js/blob/008d0f1494f0a8e3ad96d4fac59b9ad9c96d6942/resumable.d.ts#L31