这应该很简单,但我似乎无法弄明白。 npm模块next-tick在它的index.js中执行类似的操作:
module.exports = (function () {
if (/*node*/) {
return process.nextTick;
}
...
if (/*other env*/) {
return function (cb) { setTimeout(callable(cb), 0); };
}
return null;
}());
还没有打字,所以我创建了next-tick.d.ts并将其包含在我的tsconfig.js中。
但是我无法弄清楚它应该包含什么:
我唯一没有编译错误的工作是:
declare module "next-tick" {
export default function(fn:Function)
}
并在消费文件中:
import nextTick from 'next-tick';
但是当我与webpack捆绑并运行它时,它会说:next_tick_1.default is not a function
。所以它试图致电.default
。
如果我使用require(并为webpack typings添加声明)
,那么它也有效var nextTick:(fn:Function)=>void = require('next-tick');
但我确信我应该能够用打字稿导入来做到这一点吗?
答案 0 :(得分:1)
试试这个
declare module "next-tick" {
function nextTick (fn:Function)
export = nextTick
}
这使得该功能 export
导入
import nextTick = require('next-tick')
不能使用ES6导入语法,因为这只是一个函数,而不是模块(在ES6中需要)