打字稿 - 类型'false'不能指定为'true'类型

时间:2017-02-19 13:43:18

标签: angular typescript

我正在学习angular 2,在这个例子中,我将isLoading的变量设置为true,然后将其更改为false,一旦我获取了我需要的数据,我就会得到错误:

  

Typescript - 类型'false'不能赋值为'true'

这是代码:

export class AppComponent implements OnInit {
    isLoading: true;

    constructor(private _articleService: ArticleService, private _postService: PostService){}

    ngOnInit(){
      this.articles = this._articleService.getArticles();
      this._postService.getPosts()
        .subscribe(posts => {
          this.isLoading = false;
          console.log(posts[0].title);
        });
    }

3 个答案:

答案 0 :(得分:10)

不需要一次定义变量的类型,但是您应该设置在开发期间查找错误。另外编辑在知道之前完成代码,因此他知道变量的类型。

export class AppComponent implements OnInit {
isLoading : boolean =  true;

constructor(private _articleService: ArticleService, private _postService: PostService){}

ngOnInit(){
  this.articles = this._articleService.getArticles();
  this._postService.getPosts()
    .subscribe(posts => {
      this.isLoading = false;
      console.log(posts[0].title);
    });
}

答案 1 :(得分:8)

isLoading: true;表示您可以分配给isLoading的唯一值是值true。你想要isLoading: boolean

答案 2 :(得分:4)

根据评论中的建议和@Louis的回答,这是修复它的正确语法:

isLoading: boolean = true;