2

I am learning Angular 2 and I ran into this error while trying to create a service. I tried searching for a solution, but I cannot see my mistake.

Error:

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

Code:

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;        
    }
}
6
  • I've check your code here typescriptlang.org/play and all compiles fine Commented May 28, 2016 at 10:09
  • Just clutching at straws here but did you try to export the Tweet class? Commented May 28, 2016 at 11:03
  • @VasiliyVanchuk Which makes is strange. :) Commented May 28, 2016 at 11:12
  • @Oli I don't think that is the problem. I tried it, but it didn't fix it. Commented May 28, 2016 at 11:12
  • Ok, then we can rule that out atleast. Commented May 28, 2016 at 11:23

1 Answer 1

2

Your let statement is floating outside the class declarations. This will work (but in an real app you would be setting your tweets based on some http call or something):

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;        
    }
}
Sign up to request clarification or add additional context in comments.

1 Comment

You are correct sir. This fixed the issue. About the http calls, I am currently learning Angular 2 and local repositories are more practical. Once I get better, I will use a RESTful API. Thank you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.