【问题标题】:Set default value of boolean typescript设置布尔打字稿的默认值
【发布时间】:2019-04-21 18:00:25
【问题描述】:

我有一个对象:

export class ReccurrenceModel {
    fromDate: Date;
    toDate: Date;
    weeklyReccurrence: number;
    state: State;
    isMonday: boolean;
    isTuesday: boolean;
    isWednesday: boolean;
    isThursday: boolean;
    isFriday: boolean;
    fromDateToReturn: Date;
    toDateToReturn: Date;
}

我是这样用的

  if (this.reccurrenceSelected === true) {
      this.reccurrence.isMonday = this.mondaySelected;
      this.reccurrence.isTuesday = this.tuesdaySelected;
      this.reccurrence.isWednesday = this.wednesdaySelected;
      this.reccurrence.isThursday = this.thursdaySelected;
      this.reccurrence.isFriday = this.fridaySelected;
}

我想为它们设置一个默认值 - false 因为如果我不在 UI 中设置它们,它们将是未定义的,我不希望这样。

如何在 typescript 中设置布尔值的默认值?

【问题讨论】:

  • 试试isMonday:boolean = false;
  • 可能是variabelName = false,是吗?
  • @FatemeFazli 这给出了冗余的 lint 错误(只是为了通知)
  • @FatemeFazli 这也是不推荐的方式
  • @trichetriche,PardeepJain 谢谢。

标签: angular typescript boolean


【解决方案1】:

不会对您可以使用的 UI 级别进行任何重大更改。两者都是 UI 的虚假值。

你可以设置任何人。

variableName = false 

variableName: boolean;

variableName 您可以使用任一 UI,默认情况下将其视为 false,直到您将其值分配为 true。

【讨论】:

  • stackoverflow.com/help/privileges/vote-down 在这里检查,明确提到Use your downvotes whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect. 所以我的回答既不正确也不不清楚。
  • 听起来不错,你现在知道了一些新的东西,但是伙计,对我来说,它不是关于单一的赞成票,而是关于正确或不正确的。无论如何感谢您删除downvote :)
【解决方案2】:

我会添加一个默认构造函数并执行以下操作:

export class ReccurrenceModel {
    fromDate: Date;
    toDate: Date;
    weeklyReccurrence: number;
    state: State;
    isMonday: boolean;
    isTuesday: boolean;
    isWednesday: boolean;
    isThursday: boolean;
    isFriday: boolean;
    fromDateToReturn: Date;
    toDateToReturn: Date;

    constructor(){
      this.isMonday = false;
      this.isTuesday = false;
      this.isWednesday = false;
      this.isThursday = false;
      this.isFriday = false;
    }
}

稍后我会做这样的事情:,

this.reccurrence = new ReccurrenceModel();

以上行将初始化必填字段。 您可以在拨打constructor 后通过console.log(this.reccurrence) 确认这一点

【讨论】:

    【解决方案3】:

    undefinedfalse 都是假值,您可以用同样的方法进行测试。

    但默认值是用

    设置的
    export class ReccurrenceModel {
        fromDate: Date;
        toDate: Date;
        weeklyReccurrence: number;
        state: State;
        isMonday = false;
        isTuesday = false;
        ...
        fromDateToReturn: Date;
        toDateToReturn: Date;
    }
    

    【讨论】:

      【解决方案4】:

      我建议在课堂上使用getterssetters

      export class ReccurrenceModel {
          fromDate: Date;
          toDate: Date;
          weeklyReccurrence: number;
          state: State;
          isMonday: boolean;
          isTuesday: boolean;
          isWednesday: boolean;
          isThursday: boolean;
          isFriday: boolean;
          fromDateToReturn: Date;
          toDateToReturn: Date;
              ...
      
              get fromDate() {
                  return this.fromDate|| "";
              }
              get isMonday() {
                  return this.isMonday|| false;
              }
          }
      

      【讨论】:

        【解决方案5】:

        你可以放

              this.isMonday = false;
              this.isTuesday = false;
              this.isWednesday = false;
              this.isThursday = false;
              this.isFriday = false;
        

        这些也在 ngOnInit() 方法中,这是首先调用的方法。 要查找 ngOnInit() 和构造函数之间的区别,请访问 Difference between Constructor and ngOnInit

        【讨论】:

          猜你喜欢
          • 2020-05-21
          • 2018-09-01
          • 2018-10-14
          • 2022-01-25
          • 2019-05-06
          • 1970-01-01
          • 1970-01-01
          • 2013-03-06
          • 2019-11-09
          相关资源
          最近更新 更多