2017-04-08 21 views
1

幾天前我開始學習Typescript,到目前爲止這一直很困惑,尤其是模塊。我可以從TS 1.x中編寫的TS 2.x類型導入嗎?

我使用npm install -s @types/knockout進口分型,但大部分的分型availlable仍然寫在打字稿1

這裏是ES6-承諾包打字定義:

declare module 'es6-promise' { 
var foo: typeof Promise; // Temp variable to reference Promise in local context 
namespace rsvp { 
    export var Promise: typeof foo; 
    export function polyfill(): void; 
} 
export = rsvp; 
} 

是否有一個如何從typescript 2導入指定爲export = xxx的默認導出?

回答

1

是的,你可以使用它們。不幸的是,TypeScript採用了向後看的ES模塊方法,而不是前瞻性的方法。

export = rsvp 

不是默認導出。

默認的出口將有形式

export default rsvp; 

export =是指分配給現有的CommonJS的模塊module.exports屬性打字稿CommonJS的具體結構。

爲了將其作爲默認導入,您需要做兩件事。

  1. 設置"allowSyntheticDefualtImports": truetsconfig.json
  2. 使用ES模塊< - > CommonJS的模塊的互操作意識到運行時,如SystemJS和/或管在另一個構建步驟
通過巴別代碼