Свойство 'todos' не существует для типа 'Object' - PullRequest
0 голосов
/ 02 июня 2018

Я создаю свой первый MEAN-стек для приложения.Я надеюсь, что я правильно сформулировал свой вопрос, потому что я новичок в этом.

Ошибка от моей функции подписки getList ().Я думаю, что понимаю, что ошибка пытается сказать мне, но я не знаю, как это исправить.Я пытался присвоить

todos: any;

, но это не сработало.Затем я попытался назначить

todos: Array<any>;

и ряд других различных синтаксисов;неудачно.

dashboard.component.ts

export class DashboardComponent implements OnInit {
  user: Object;

  lists: any;
  todos: any;

  @Input() input;

  @Output() update = new EventEmitter();

  constructor(
    private authService: AuthService,
    private flashMessage: FlashMessagesService,
    private listService: ListService
  ) { }

  ngOnInit() {
    this.getLists();

    this.authService.getProfile().subscribe(profile => {
      this.user = profile.user;
    },
    err => {
      console.log(err);
      return false;
    });
  }

  getLists(): void {
    this.listService.getAllTodos()
      .subscribe(data => this.lists = data.todos);
  }

list.service.ts

export class ListService {
  newTodo: any;
  list: any;

  constructor(private http: HttpClient) { }

  getAllTodos() {
    return this.http.get('http://localhost:3000/todos/lists');
  }

РЕДАКТИРОВАТЬ =========================================================

Это мойПользовательский интерфейс / модель класса, которую я пробовал вместе с измененным кодированием для моей подписки на наблюдаемую

List.ts

export class List {
  item: string;
  completed: boolean;
}

Измененные для моих старых файлов

панель мониторинга.component.ts

import { List } from '../../list';

export class DashboardComponent implements OnInit {

  lists: List;

getLists(): void {
    this.listService.getAllTodos()
      .subscribe((data: List) => this.lists = data.todos);
  }

Я все еще получил ту же ошибку, опубликованную в строке темы, за исключением того, что тип изменен с 'Object' на 'List'

Property 'todos' does not exist on type 'List'

1 Ответ

0 голосов
/ 02 июня 2018

Вы можете создать пользовательский interface/class для сопоставления ответа.Или используйте любой тип перед доступом к задачам.

 this.listService.getAllTodos()
      .subscribe((data:any) => this.lists = data.todos);
...