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.1k
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'

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题