【问题标题】:Typescript validate multiple condition passed as function parameter打字稿验证作为函数参数传递的多个条件
【发布时间】:2022-12-01 16:46:15
【问题描述】:

我是 TS/JS 的新手,我想验证作为参数传递给函数的多个条件

例如,这里我正在检查用户角色名称,tmrw 我可能需要检查一些其他条件

  validateUserDetails(): Promise<Boolean> {
    return new Promise<Boolean>((resolve, reject) => {
      this.currentLoggedInUserRole = this.sharedService.getCurrentUser()['roleName'];
      if (this.currentLoggedInUserRole) {
        let url = `<some GET url>`;
        this.http
          .get<any>(url)
          .pipe(
            take(1),
            catchError((error) => {
              reject(false);
              return throwError(error);
            })
          )
          .subscribe((response: any) => {
            if (
              response.length > 0 && response.some((user) => user['roleName'] === this.currentLoggedInUserRole)) {
              resolve(true);
            } else {
              resolve(false)
            }
          });
      }
    });
  }
this.userValidationService.validateUserDetails().then(isUserValid => {
  //some logic
}).catch((error) => {console.log(new Error(error))})

我想将要检查的条件作为参数传递给下面的函数,tmrw 我可能有多个值要传递我不作为逗号分隔值传递,我想传递可能像数组或映射。this.userValidationService.validateUserDetails(['userRole', userID]) .

this.userValidationService.validateUserDetails('userRole').then(isUserValid => {
  //some logic
}).catch((error) => {console.log(new Error(error))})

所以我的问题是我如何传递具有多个条件的参数,如果是,我如何处理我的承诺以检查所有/部分条件。谢谢

【问题讨论】:

    标签: javascript arrays angular typescript javascript-objects


    【解决方案1】:

    你可以找TypeScript - Rest Parameters

    validateUserDetails(...fields: string[]): Promise<Boolean> {
      ...
    }
    

    然后你可以将函数参数作为单独的(逗号)或数组传递,结果是一样的。

    this.userValidationService.validateUserDetails(['userRole', 'userID', ...])
    

    或者

    this.userValidationService.validateUserDetails('userRole', 'userID', ...)
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 2021-07-17
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多