Как принять решение на основе типа переменной? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть базовая переменная в формате строки. Я хочу принять решение в коде на основе типа переменной. У меня есть код ниже.

var typeOfVariable = typeof(chai);
console.log(typeOfVariable); //getting output as number

if (typeOfVariable = 'string'){
    chai = parseFloat(chai); // throwing error here
}

Я зарегистрировал 'typeOfVariable' и получил номер. Тем не менее, код также входит в условие if. Любые идеи о том, почему это происходит.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

В случае, если вы присвоили 'string' typeofVariable вместо того, чтобы сравнивать его. Должно быть

if(typeOfVariable === 'string')
0 голосов
/ 27 апреля 2018

Если вам нужно принять решение о типе в машинописи, вы можете использовать type guard :

function padLeft(value: string, padding: string | number) {
    if (typeof padding === "number") {
        return Array(padding + 1).join(" ") + value;
    }
    if (typeof padding === "string") {
        return padding + value;
    }
    throw new Error(`Expected string or number, got '${padding}'.`);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...