我有教程中的以下 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;
}
关于javascript - Typescript 中的条件默认导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45251209/