微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Mobx 状态树库解决 React 应用程序中的 linter 和类型冲突问题?

如何解决如何使用 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;

在 getFirst 方法附​​近触发错误函数代码

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 举报,一经查实,本站将立刻删除。