如何解决如何使用 Mobx 状态树库解决 React 应用程序中的 linter 和类型冲突问题?
我有一个 React 应用程序,它可以与 mobx-state-tree 和工作 linter 一起使用。在这个应用程序中,我遇到了我试图在三天内解决的问题。 这是我抛出错误的代码,我描述了我在模型文件中描述的项目列表模型。该错误位于 getFirst() 函数附近,该函数将数组中的第一项返回给我。此错误的原因 - Mobx 库无法识别项目函数返回的类型并抛出我放在照片上的错误。Screenshot of the error。当我删除返回函数的类型时 - linter 抛出错误,该函数没有返回类型。Photo of that error. 另外,我在此处附加了我的消息模型的代码。
import { types } from 'mobx-state-tree';
import ItemList from './itemList';
const Message = types
.model('Message',{
chatId: types.integer,text: types.string,time: types.Date,isSent: false,})
.actions((self) => ({
send(): void {
self.isSent = true;
},}))
.views((self) => ({
status(): boolean {
return self.isSent;
},}));
export default Message;
import {
ISimpleType,IType,ModelInstanceType,ModelPropertiesDeclarationToProperties,types,_NotCustomized,} from 'mobx-state-tree';
import Message from './models';
const ItemList = types
.model('ItemList',{
items: types.array(Message),})
.actions((self) => ({
add(
message: ModelInstanceType<
ModelPropertiesDeclarationToProperties<{
chatId: ISimpleType<number>;
text: ISimpleType<string>;
time: IType<number | Date,number,Date>;
isSent: false;
}>,{ send(): void } & { status(): boolean },_NotCustomized
>,): void {
self.items.push(message);
},pop(): void {
self.items.shift();
},empty(): boolean {
return self.items.length === 0;
},getFirst(): ModelInstanceType<
ModelPropertiesDeclarationToProperties<{
chatId: ISimpleType<number>;
text: ISimpleType<string>;
time: IType<number | Date,Date>;
isSent: false;
}>,_NotCustomized
> {
return self.items[0];
},getLen(): number {
return self.items.length;
},}));
export default ItemList;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。