转换为 TS

时间:2021-01-05 00:22:48

标签: reactjs typescript redux

我有一个副项目,我决定将其从 JS 转换为 TS。这是一个使用 Redux 的 React 项目。

我在尝试将根元素包装在 Provider 中时遇到问题。给我错误消息的代码行在 ReactDOM.render 中用三个 * 符号包裹。

这是Github link

我得到的错误是

any
Operator '<' cannot be applied to types 'boolean' and 'RegExp'.ts(2365)
No overload matches this call.
  The last overload gave the following error.
    Argument of type 'boolean' is not assignable to parameter of type 'Element | DocumentFragment | null'.ts(2769)
index.d.ts(93, 5): The last overload is declared here.
'App' refers to a value but is being used as a type here. Did you mean 'typeof App'?**strong text**
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { App } from './components/App.js';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import rootReducer from './reducers/flightsReducers';
import store from './store';

// import { styles } from '../public/styles.scss';
const store = createStore(rootReducer);

ReactDOM.render(
    <Provider ***store={store}>
        <App />
    </Provider>***
    , document.getElementById('app')
);

1 个答案:

答案 0 :(得分:1)

应用在浏览器中运行良好(通过 npm run dev)这一事实意味着这是您的编辑器的问题,而不是代码本身的问题。

通过将 client/index.ts 的名称更改为 client/index.tsx,编辑器将开始识别您对 JSX 的使用并消除打字问题:

demonstrating file extension tweak fix