闲置财产掉了?

Hyp*_*ate 5 javascript json typescript lodash angular

首先,我的班级:

export class FooBar {
 ...
 isFavorite: boolean = false;

 constructor() {
   this.isFavorite = false;
  }
}
Run Code Online (Sandbox Code Playgroud)

使用 Lodash 我对 的列表进行排序FooBar,因此我最喜欢的将在列表的顶部:

this.fooBars = _.orderBy(this.fooBars, ['isFavorite', 'name'], ['desc', 'asc']);
Run Code Online (Sandbox Code Playgroud)

当我收藏一个项目并查看我的 console.log 时,它说明了这一点:

isFavorite 为 false 时不显示

请注意,#3 没有 isFavorite 属性...

每当我从未设置时,isFavorite它都不会显示。这使得 Lodash 排序错误。
有没有办法始终显示此属性,即使它未使用/未设置/错误?

我试过:
- 在类
中将属性设置为 false
-在类的构造函数中将属性设置为 false -this.foobars在我的组件中循环,将它们全部设置为 false
- 添加一个接口到FooBar

Bel*_*dar 1

我认为这是默认类属性的 typeScript 方式

export default class FooBar {
  constructor(private isFavorite: boolean = false) {
     ...
  }
}
Run Code Online (Sandbox Code Playgroud)

或者简单地

export class FooBar {
  constructor() {
     this.isFavorite = false;
  }
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用 iteratee 中的函数_.orderBy来相应地对列表进行排序:

export default class FooBar {
  constructor(private isFavorite: boolean = false) {
     ...
  }
}
Run Code Online (Sandbox Code Playgroud)
export class FooBar {
  constructor() {
     this.isFavorite = false;
  }
}
Run Code Online (Sandbox Code Playgroud)