Я не новичок в JS, но с новым TS. Google-fu не ответил за меня. Интересно, что ты скажешь. Пример использования: у меня есть объект оценки с несколькими свойствами, включая два фактических значения оценки для каждого набранного числа. После прохождения викторины генерируются разные сообщения в зависимости от того, какие баллы содержат ответы (и их значения). Если вы перезапустите, баллы будут сброшены.
Что мне следует инициализировать и сбросить эти свойства (и, следовательно, проверить), чтобы что A. Я могу увеличить их. Б. Я могу проверить позже, тронули ли они их.
Очевидный ответ - 0, но 0 является допустимым результатом в обеих викторинах. Моя следующая склонность - Null, но в JS Null на самом деле является объектом и конфликтует с типом. Я склоняюсь к go с undefined, что дает отрицательный результат и относится к типу undefined. Это плохая идея? Есть ли более надежный / элегантный вариант
Я не знаю, нужен ли код, чтобы проиллюстрировать это, но вот скелет:
export interface ScoreObjTemplate {
pol : number,
group : string
quiz : string,
choice : number,
wVal : number,
fooScore ? : number,
barScore ? : number
}
// a number of functions that iterate through questions for one or both quizes, adding positive or negative values based on choices
this.myScore.fooScore = this.myScore.fooScore + myAnswer.Val
const myScore: ScoreObjTemplate;
if (this.myScore.fooScore) {
generateMessage(this.myScore.fooScore);
}
if (this.myScore.barScore) {
generateMessage(this.myScore.barScore);
}
generateMessage(score){
switch(score)
case < 0:
fooMsg = "lorem";
break;
case 0:
fooMsg = "Ipsum";
break;
case >10:
fooMsg = "Dolar";
break;
default:
fooMsg = "Amet";
}
Заранее спасибо