Могу ли я сравнить числовые переменные с «валидатором класса»? - PullRequest
0 голосов
/ 30 января 2020

Привет! У меня есть вопрос о классе-валидаторе

Мой клиент запросит несколько чисел, и мне нужно сравнить значения друг с другом.

Мне нужен код, подобный приведенному ниже.

const validator: SomeValidator = new SomeValidator;
validator.first = 1000;
validator.second = 2000; // this will be greater than validator.first
validator.third = 3000; // this will be greater than validator.second

И я попробовал ввести переменную в валидатор @Min (), как показано ниже

import { IsInt, Min } from 'class-validator';

class SomeValidator {

  @IsInt()
  @Min(0)
  public first: number;

  @IsInt()
  @Min(this.first) // it occurs TS7017
  public second: number;

  @IsInt()
  @Min(this.second) // it occurs TS7017
  public third: number;

}

И я получил TS7017 Ошибка .

TS7017: Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature.

Есть ли идеальный способ обработки это?

Я знаю, что есть простой способ, как показано ниже, но I sh есть какой-то способ использования валидатора класса.

if ((first > second) || (second > third)) {
  res.status(400).json({
    message: 'validation failed',
  });
  return next(new Error('some error'));
...