#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
и тогда это реальная проблема