2017-04-11 100 views
0

我是ES6和TypeScript的新手。我們已經將一些代碼重構爲ES6,但我們嘗試瞭如果切換到TypeScript而不是更容易編寫更易維護的代碼。TypeScript中未識別的導出對象的類型

如果有以下的,簡化的ES6模塊config.js

export default { 
    logger: require('winston'), 
    somethingelse: 'text' 
} 

我到處導入此模塊在我的項目,如在app.js

import * as config from '../../../../config' 
const logger = config.logger 
... 

據我瞭解,打字是可選在TypeScript和ES6代碼中應該運行良好,如果我只是將文件.js重命名爲.ts。如果這是我錯誤的假設,請糾正我。

/project/app.ts(7,23): Property 'logger' does not exist on type 'typeof \"/project/config\"'. 

因此,這意味着,我聲明一個類型:然而,當我編譯我得到這個錯誤?於是我繼續爲導出的對象聲明一個接口。

config.js

interface IConfig { 
    logger: any; 
    somethingelse: string; 
} 

const defaultConfig: IConfig = { 
    logger: winston, 
    text: 'text' 
} 

export default defaultConfig 

但我仍然得到上面的編譯錯誤。

回答