2016-05-28 5 views
0

Я изучаю Angular 2, и я столкнулся с этой ошибкой при попытке создать службу. Я попытался найти решение, но я не вижу своей ошибки.Angular 2/Typcript - TypeError: ClassName не является конструктором

Ошибка:

angular2-polyfills.js:1243 TypeError: Tweet is not a constructor 

Код:

export class TweetService{ 
    getTweets(){ 
     return tweets; 
    } 
} 

let tweets = new Tweet("URL", "Author 1", "Handle 1", true, 50); 

class Tweet { 
    image: string; 
    author: string; 
    handle: string; 
    status: "Lorem ipsum dolor sit amet."; 
    isLiked: boolean; 
    favorites: number; 

    constructor(img, aut, hndl, ilkd, fav){ 
     img = this.image; 
     aut = this.author; 
     hndl = this.handle; 
     ilkd = this.isLiked; 
     fav = this.favorites;   
    } 
} 
+0

Я проверить код здесь https://www.typescriptlang.org/play/ и все компилирует штраф –

+0

Просто сжимая здесь соломинку, но вы пытались экспортировать класс Tweet? – Oli

+0

@ Василий Ванчук Что делает странно. :) – Ivan

ответ

1

Ваше заявление пусть плавает вне объявлений классов. Это будет работать (но в реальном приложении вы бы настройки чириканье на основе некоторых HTTP вызов или что-то):

import {Injectable} from '@angular/core'; 

@Injectable() 
export class TweetService{ 
    getTweets(){ 
     let tweets = new Tweet("URL", "Author 1", "Handle 1", true, 50); 
     return tweets; 
    } 
} 

class Tweet { 
    image: string; 
    author: string; 
    handle: string; 
    status: "Lorem ipsum dolor sit amet."; 
    isLiked: boolean; 
    favorites: number; 

    constructor(img, aut, hndl, ilkd, fav){ 
     this.image = img; 
     this.author = aut; 
     this.handle = hndl; 
     this.isLiked = ilkd; 
     this.favorites = fav;   
    } 
} 
+0

Вы правы сэр. Это устранило проблему. О http-звонках я сейчас изучаю Angular 2, а местные репозитории более практичны. Как только я поправляюсь, я буду использовать RESTful API. Спасибо. – Ivan

Смежные вопросы