Bot*_*ázs 5 javascript node.js typescript ecmascript-6
我有以下来自教程的 JS 代码:
if (process.env.NODE_ENV === 'production') {
module.exports = require('./configureStore.prod');
} else {
module.exports = require('./configureStore.dev');
}
Run Code Online (Sandbox Code Playgroud)
这configureStore.*.ts两个文件都有一个默认导出:
export default function configureStore(initialState?: State) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想将之前代码片段中的条件导出翻译成 TypeScript。如果我将代码保留原样,则会出现编译时错误:
error TS2306: File 'configureStore.ts' is not a module.
Run Code Online (Sandbox Code Playgroud)
经过一些试验和错误,我可以得到以下编译:
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;
Run Code Online (Sandbox Code Playgroud)
我尝试像这样使用它:
import configureStore from "./store/configureStore";
const store = configureStore();
Run Code Online (Sandbox Code Playgroud)
但我在运行时收到此错误消息:
TypeError: configureStore_1.default is not a function
Run Code Online (Sandbox Code Playgroud)
如何将原始代码成功翻译成 TypeScript?
if (process.env.NODE_ENV === "production") {
configureStore = require("./configureStore.prod").default;
} else {
configureStore = require("./configureStore.dev").default;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |