Интерфейс Typescript - Невозможно вызвать выражение, тип которого не имеет подписи вызова - PullRequest
0 голосов
/ 10 января 2019

У меня есть модель под названием QClass

export interface QClass {
  rowid: number;
  Category: string;
  Question: string;
  Image: string;
  Option1: string;
  Option2: string;
  Option3: string;
  Option4: string;
  Answer: number;
}

У меня есть провайдер базы данных, который возвращает Обещание

selectData(): Promise<QClass[]> {
    console.log('selectData Called')

    return this.database.executeSql('SELECT * FROM question ORDER BY rowid DESC', [])
      .then(res => {
        console.log('Selected from table SQL')
        for (var i = 0; i < res.rows.length; i++) {
          this.questions.push({ rowid: res.rows.item(i).rowid, Category: res.rows.item(i).Category, Question: res.rows.item(i).Question, Image: res.rows.item(i).Image, Option1: res.rows.item(i).Option1, Option2: res.rows.item(i).Option2, Option3: res.rows.item(i).Option3, Option4: res.rows.item(i).Option4, Answer: res.rows.item(i).Answer });
          console.log("Pushed item " + i + " - " + res.rows.item(i).Question);
        }
        return this.questions;
      })
  }

Но затем, когда я вызываю это на своей странице, это выдает мне ошибку «Невозможно вызвать выражение, тип которого не имеет сигнатуры вызова. Тип« QClass [] »не имеет совместимых сигнатур вызовов». на линии вопросы (я). Категория

this.databaseprovider.selectData().then((questions) => {

      this.questions = questions;
      for (var i = 0; i < questions.length; i++) {
        console.log("Pushed item " + i + " - " + questions(i).Category);
      }
    });

Можете ли вы предложить проблему?

...