Nativescript: ошибка TS1005: ',' ожидается

tns 2.3.0

Я определил пользовательский интерфейс:

export interface User {
  name: string,
  pictureUrl: string,
  coverUrl: string
}

chat.service:

@Injectable()
export class ChatService {
  constructor(private http: Http) {}

  getChat() {
    let headers = new Headers();
    headers.append("Authorization", "Bearer " + Config.token);

    return this.http.get(Config.apiUrl + "/chat", {
      headers: headers
    })
    .map(res => res.json())
    .map(res => {
      console.log("Chat:")
      console.log(res)
      console.log(res.participants.me.name)
      let chat_data = res;

      let me : User = {
        name: chat_data.participants.me.name, 
        pictureUrl: chat_data.participants.me.pictureUrl,
        coverUrl: chat_data.participants.me.coverUrl
      };

      let other : User = {
        name: chat_data.participants.other.name, 
        pictureUrl: chat_data.participants.other.pictureUrl,
        coverUrl: chat_data.participants.other.coverUrl
      };

      let messages : Message[] = chat_data.messages;

      let chat : Chat = {
        participants : {
          me : me,
          other: other
        },
        messages : messages
      }

      return chat;
    })
    .catch(this.handleErrors);

    handleErrors(error: Response) {                    //line 58
      console.log(JSON.stringify(error.json()));
      return Observable.throw(error);
    }

  }
}

При сборке я получаю следующую трассировку ошибки:

app / shared / chat / chat.service.ts (58,23): ошибка TS1005: ',' ожидается.

app / shared / chat / chat.service.ts (58,35): ошибка TS1005: ';' ожидал.


person vivekanon    schedule 29.10.2016    source источник


Ответы (1)


В вашем экземпляре у вас есть запятая в конце второй строки и точка с запятой в конце третьей и четвертой строк:

let me = new User {
    name: me.name,                   <-- comma
    pictureUrl: other.pictureUrl;    <-- semicolon
    coverUrl: other.coverUrl;        <-- semicolon
  };

Даже зная о Nativescript так же мало, как я, я предполагаю, что это неправильно (на основании сообщений об ошибках и моих знаний общих правил синтаксиса).

Если это правда, кстати, вам, вероятно, лучше удалить вопрос, поскольку он почти наверняка будет закрыт как простая опечатка.

person paxdiablo    schedule 29.10.2016
comment
Правильно, я думаю, что это просто синтаксис JavaScript в целом. Но не цитируйте меня по этому поводу :) - person Brad Martin; 29.10.2016
comment
@paxdiablo Мне жаль, что произошла ошибка, я обновил сообщение. - person vivekanon; 30.10.2016
comment
@moaglee Да, эта ошибка является опечаткой, поскольку интерфейс определяется свойствами объекта, и каждое свойство отделяется запятой, так как это не конец команды, измените точку с запятой на запятую и будет работать - person Marek Maszay; 30.10.2016
comment
@MarekMaszay Пожалуйста, проверьте сообщение еще раз, это фактический код, и он не имеет; - person vivekanon; 02.11.2016
comment
Интерфейс @moaglee имеет то же правило, что в нем должны быть запятые, а не точка с запятой, поэтому, вероятно, это то, что вызывает ошибку - person Marek Maszay; 02.11.2016
comment
@MarekMaszay Я удалил; Я все еще получаю ту же ошибку. Кроме того, интересно, почему это происходит в строке # 58. - person vivekanon; 03.11.2016