使用Webpack和ForkTsCheckerWebpackPlugin在开发过程中进行打字稿类型检查?

问题描述

我是Typescript的新手,并且正在使用以下设置:

  • 使用reactreduxreact-redux
  • webpack捆绑
  • 使用ForkTsCheckerWebpackPlugin
  • 进行类型检查
  • 我也使用react-hot-loader

我有一些奇怪的行为。

有时我会更改正在使用的类型,ForkTsCheckerWebpackPlugin仅在停止并重新启动webpack-dev-server以便从头开始重新编译所有内容后,才会显示(或不显示)类型错误

这是正常现象吗?每次更改使用的类型时都需要重新编译吗?

例如:

插件抱怨我的IS_MOBILE类型缺少LAYOUT属性

enter image description here

这是因为我正在为此对象尝试一种新形状。

但是您可以看到我已经从我的LAYOUT界面中删除了该属性,因此该错误将不再显示

enter image description here

现在,我将重新启动webpack

enter image description here

您可以从上图看到错误现在消失了。

问题

这是ForkTsCheckerWebpackPlugin的正常行为吗?进行此类更改时是否需要重新编译所有内容?还是可能是因为我正在使用react-hot-loader或其他我应该使用的配置。

注意:整个打开的文件中的正常VSCode ts检查工作正常。它们始终会立即反映出我对正在使用的类型所做的更改。

PS:这些类型是使用d.tsdeclare namespace {...}文件中声明的

解决方法

看起来像这个错误https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/issues/457

您可以尝试配置ForkTsCheckerWebpackPlugin

new ForkTsCheckerWebpackPlugin({
    typescript: {
        build: true,},}),

但是它可以解决而不是解决问题。