在Redux中使用TypeScript时initialState初始化报错问题咨询
错误原因
- 类型标注不匹配:你定义的
Book接口描述的是单本书籍的结构,但initialState实际是包含Books(书籍列表)、likedBook(点赞书籍列表)两个数组属性的状态容器,和Book接口的结构完全不一致,因此TypeScript会抛出类型校验错误。 - 数组初始化语法错误:
Book[]是TypeScript的类型声明语法,仅可用于类型标注场景,不能作为实际值赋值给对象属性,运行时会直接抛出语法错误。 - 额外小问题:TypeScript中表示字符串、布尔值等原始类型时,应使用小写的
string/boolean,大写的String/Boolean是JS内置的包装对象类型,不适用于普通变量的类型标注。
修正后代码
// 单本书籍类型定义,修正原始类型写法 export interface Book{ title : string, contents: string, thumbnail: string, liked: boolean } // 新增对应state结构的类型接口 interface BookState { Books: Book[], likedBook: Book[] } // 标注正确的state类型,用空数组初始化属性 const initialState : BookState = { Books : [], likedBook: [] };
内容的提问来源于stack exchange,提问作者sojinLee
相关产品推荐
相关产品推荐

