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