функция javascript, возвращающая -1, всегда кажется недостижимой

#javascript

#javascript

Вопрос:

Я работаю над фрагментом кода, тест всегда выдает значение -1 в качестве возврата делает ли этот оператор if более позднюю часть недоступной? я думаю, независимо от значения ypos, что оно всегда будет возвращать -1?

 export function showPreview(content: any , xpos: any, ypos: number, ybot:   any) {
if (!(ypos > 100 || ypos < 100 || ypos === 100)) {
    return -1;
}
hidePreview();
positionPreview(xpos, ypos, ybot);
return 1;
  

Комментарии:

1. пожалуйста, добавьте, что вы хотите протестировать и когда возвращать -1 .

2. Как вы можете получить -1 то, что у вас есть при замедлении ypos:number ? вы передаете правильный ввод?

3. Это машинописный текст?

Ответ №1:

Может быть, вы передаете NaN или undefined или просто '100' .

 var ypos = '100';

if (!(ypos > 100 || ypos < 100 || ypos === 100)) {
    console.log(-1);
}  

Комментарии:

1. Также, если ypos есть '100' (> и < принудительно преобразуйте его в число (значение false) и === произойдет сбой)

2. ypos: number … Typescript исключит undefined и '100' , только NaN это возможное значение. (или показанный код не соответствует TS)

3. @JonasWilms, я понятия не имею о typescript, но спасибо за разъяснения.

4. @JonasWilms но можно ли получить undefined (или даже строку) во время выполнения? В зависимости от того, как OP ее вызывает.

5. @adiga, да, но в этом случае OP должен выполнять очень небезопасное приведение типов, например, "3" as number и тогда это реальная проблема