Невозможно назначить аргумент типа 'строка | число «параметру типа« строка » - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю модульный тест для проекта nodejs.

Здесь я столкнулся со следующей ошибкой.

Сообщение об ошибке:

error TS2345: Argument of type 'string | number' is not assignable to parameter of type 'string'.
    Type 'number' is not assignable to type 'string'.

 const result = convertTimeStringToNumber(input);

Мне нужно использовать 'input' (string) как аргумент для convertTimeStringToNumber, чтобы получить 'result' (число), чтобы я мог сравнить результат (число) с ожидаемым результатом (число).

Я хотел перебрать массив с помощью test.each, чтобы я мог протестировать сразу несколько пар данных.

Пожалуйста, дайте мне знать, как мне этого добиться.

Вот мой код и тестовый код .

timeUil.ts

export function convertTimeStringToNumber(timeString) {
    return [timeString]
        .map(str => str.replace(':', ''))
        .map(parseInt)[0]
}

test.spe c .ts

  const oldtimes = [['9:30', 930], ['11:00', 1100], ['14:34', 1434], ['19:45', 1945]];

  describe("convertTimeStringToNumber", () => {
    test.each(oldtimes)(
        "given %s, convert to %i", (input, expectedResult) => {
            const result = convertTimeStringToNumber(input);
            expect(result).toBe(expectedResult);
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...