Reactjs Typescript/tslint的几个问题
我是打字新手!只是试着做一些基本的注释作为开始 首先,一个进口商品一直在叫喊 其次,Reactjs Typescript/tslint的几个问题,reactjs,typescript,react-hooks,Reactjs,Typescript,React Hooks,我是打字新手!只是试着做一些基本的注释作为开始 首先,一个进口商品一直在叫喊 其次,类型在对象分解过程中不会被拾取 第三,jsx似乎工作不正常 我的代码 import * as React from "react"; import { useMappedState } from "redux-react-hook"; import TodoItem from "./TodoItem"; type TodosReducer = { todos: [] } const mapState =
类型
在对象分解过程中不会被拾取
第三,jsx似乎工作不正常
我的代码
import * as React from "react";
import { useMappedState } from "redux-react-hook";
import TodoItem from "./TodoItem";
type TodosReducer = {
todos: []
}
const mapState = ({ todosReducer: TodosReducer }) => ({
todoCount: todosReducer.todos.length,
todos: todosReducer.todos
});
export default function TodoList(): HTMLDivElement {
const { todoCount, todos } = useMappedState(mapState);
return (
<div>
<div>You have {todoCount} todos</div>
<ul>
{
todos.map((todo: string, index: number) => <li key={index} {...todo}>,/li.)
}
</ul>
</div>
);
}
第三方软件包需要在TypeScript中进行打字
@types/react
应与react
等一起安装
const mapState = ({ todosReducer: TodosReducer }) => ({ ... })
键入todosReducer
参数的语法不正确。它被视为ES6解构语法。正确的答案是:
...
type TodosState = { todosReducer: TodosReducer };
const mapState = ({ todosReducer }: TodosState) => ({ ... );
useMappedState
是泛型函数,应该用作:
useMappedState<TodosState>(mapState);
useMappedState(mapState);
为什么是a-1?想解释一下吗?我没有投反对票,但你试图同时解决很多问题。如果你对TS很陌生,考虑一个一个地把它们分类。你会发现最好重复15行代码来回答三个不同的问题吗?你不需要所有的15行。你所需要的就是。如果您在导入React时遇到问题,则为1行。很可能所有的问题之前都是在SO上回答的,所以您将被链接到重复的问题。我有React的类型。那么这是否意味着我也需要为redux react hook
包提供类型呢?哦,是的!那么我该如何进行todosReducer注释呢?是否对所有对象进行注释?在我的情况下陈述。例如,const-mapState=(state:StateType)=>({})
其中StateType将是type-StateType={todosReducer:{todos:[]}
。似乎有点过分了。还有更好的办法吗?我刚刚更新了。是的,应该有类似StateType的东西。您将多次使用它。至于redux react hook.,它是用TS编写的,并且已经包含打字(.d.TS文件)。您可以检查节点_模块中的包内容。确保使用最新版本。我提到了react
,因为“react”在第1行也做了同样的事情
useMappedState<TodosState>(mapState);