gpt4 book ai didi

reactjs - 类型 'hot' .ts(2339) 上不存在属性 'NodeModule'

转载 作者:行者123 更新时间:2023-12-03 13:32:34 36 4
gpt4 key购买 nike

我购买了一个带有以下几行的 React 模板,但我不清楚它的目的是什么,该模板是 JS 格式的,我想将其更改为 Typescript

模板中存在以下几行

 if (module.hot) {
module.hot.accept('./dashApp.js', () => {
const NextApp = require('./dashApp').default;
ReactDOM.render(<NextApp />, document.getElementById('root'));
});
}

但是,当重命名为 .TS 时,我收到此错误:

Property 'hot' does not exist on type 'NodeModule'.ts(2339)

这段代码的真正作用是什么?用简单的英语来说

最佳答案

此代码与 Webpack 的热模块替换功能(HMR)相关。 module.hot 的工作原理如下:

module.hot.accept(
dependencies, // Either a string or an array of strings
callback // Function to fire when the dependencies are updated
);

因此,您包含的代码执行以下操作:*当 ./dashApp.js 的代码或其在需求/导入树中需要/导入的模块之一更新时,重新渲染整个 React 应用程序。

节点模块上的 hot 属性不是标准的,因此会出现 TS 错误 - 确保安装所需的类型定义! npm install --save-dev @types/webpack-env 应该可以解决问题。

<小时/>

相关阅读:

关于reactjs - 类型 'hot' .ts(2339) 上不存在属性 'NodeModule',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55263085/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com