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报错:

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

回答

import * as React from 'react'

搞定了!

React是个命名空间,只要在typings.d.ts里声明这个命名空间,并从react引入剩余的部分:

/* eslint-disable spaced-comment */

/// <reference path = "./node_modules/@types/react/index.d.ts" />

declare namespace React {} // 声明全局 React 命令空间

相关知识点:https://www.tslang.cn/docs/ha...

以上是 React 使用 ProvidePlugin 作为全局变量使用后,ts如何声明? 的全部内容, 来源链接: utcz.com/a/32653.html

回到顶部