在Typescript中有条件的默认导出

我有一个教程的以下JS代码:

if (process.env.NODE_ENV === 'production') { module.exports = require('./configureStore.prod'); } else { module.exports = require('./configureStore.dev'); } 

configureStore.*.ts文件都有一个默认的导出:

 export default function configureStore(initialState?: State) { // ... } 

我想将以前的代码片段中的条件输出转换成TypeScript。 如果我只是离开代码,我得到一个编译时错误:

 error TS2306: File 'configureStore.ts' is not a module. 

经过一些试验和错误,我可以得到以下编译:

 import {Store} from "redux"; import {State} from "../reducers"; let configureStore: (state?: State) => Store<State>; if (process.env.NODE_ENV === "production") { configureStore = require("./configureStore.prod"); } else { configureStore = require("./configureStore.dev"); } export default configureStore; 

我尝试使用它像这样:

 import configureStore from "./store/configureStore"; const store = configureStore(); 

但是我在运行时得到这个错误信息:

 TypeError: configureStore_1.default is not a function 

我怎样才能成功地将原始代码翻译成TypeScript?

 if (process.env.NODE_ENV === "production") { configureStore = require("./configureStore.prod").default; } else { configureStore = require("./configureStore.dev").default; }