2016-09-30 73 views
0

這應該很簡單,但我似乎無法弄清楚。 NPM模塊旁邊剔做這樣的事情在它的index.js:聲明一個模塊,導出一個自我呼叫功能

module.exports = (function() { 
    if (/*node*/) { 
     return process.nextTick; 
    } 
    ... 
    if (/*other env*/) { 
     return function (cb) { setTimeout(callable(cb), 0); }; 
    } 

    return null; 
}()); 

有沒有分型,所以我創建了下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

什麼也工作是,如果我使用的需要(與分型的WebPack聲明添加爲)

var nextTick:(fn:Function)=>void = require('next-tick'); 

但我敢肯定,我應該能夠以打字稿進口做到這一點?

回答

1

試試這個

declare module "next-tick" { 
    function nextTick (fn:Function) 
    export = nextTick 
} 

這使得該函數爲出口

要導入

import nextTick = require('next-tick') 

的ES6進口語法不能使用,因爲這僅僅是一個函數,不是一個模塊(按照ES6的要求)

+0

that wo rks並且合理,tnx! – Flion