React 使用 ProvidePlugin 作为全局变量使用后,ts如何声明?

主要是不想每次都 import React from 'react,过程如下:

1 . 使用ProvidePlugin全局导入

.use(webpack.ProvidePlugin, [
      {
        React: 'react',
        useState: ['react', 'useState'],
        ReactDOM: 'react-dom'
      }
    ])

2 . eslint添加全局变量

  globals: {
    useState: 'writable',
    React: 'writable'
  },

这样,运行没有问题,但是ts报错:

image.png

是不是需要声明React全局变量 ?
如果是,如何利用已有的React模块声明 ?

阅读 4.2k
2 个回答

正确解法:

/* eslint-disable no-undef */
/* eslint-disable no-redeclare */
import React from 'react'

declare global {
  const React: typeof React
  const useState: typeof React.useState
}

import * as React from 'react'

推荐问题