私はES6とTypeScriptを初めて使用しています。私たちはいくつかのコードをES6にリファクタリングしましたが、メンテナンス可能なコードを書くのではなく、TypeScriptに切り替えるほうが良いのではないかと試してみました。TypeScriptで認識されないエクスポートオブジェクトのタイプ
私は、このようなapp.js
のように、私のプロジェクト全体のどこでも、このモジュールをインポートconfig.js
export default {
logger: require('winston'),
somethingelse: 'text'
}
以下、簡略化されES6モジュールを使用している場合:
import * as config from '../../../../config'
const logger = config.logger
...
私の知る限り理解し、タイピングはオプションですTypeScriptでは、ファイル名を.js
から.ts
に変更するだけで、ES6コードは正常に動作するはずです。それが私の間違った前提だったら私を修正してください。しかし、私はコンパイル時に私はこのエラーを取得する:
/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
しかし、私はまだ上記のコンパイルエラーを取得しています。