在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; }