ограничения типа выражений в операторе switch (arkts-switch-expr) переменные, объявленные с помощью let или const, как целые числа (number) без типа или с типом, а также значения 0 и 1.0, были неправильно определены.
Сетевая среда: отсутствует
Предварительные условия:
Самая свежая версия для тестирования
Шаги тестирования:
Сканирование файла
// const объявление, целое число number, без типа
const num = 2;
function Fun(a: number) {
switch (a) {
case 1: {
console.log('One');
break;
}
case 2: {
console.log('Two');
break;
}
}
}
Fun(num);
// const объявление, целое число number, с типом
const num11: number = 2;
switch (num11) {
case 1: {
console.log('One');
break;
}
case 2: {
console.log('Two');
break;
}
}
// let объявление, целое число number, без типа
let num0 = 2;
switch (num0) {
case 1: {
console.log('One');
break;
}
case 2: {
console.log('Two');
break;
}
}
// let объявление, целое число number, с типом
let num00: number = 2;
switch (num11) {
case 1: {
console.log('One');
break;
}
case 2: {
console.log('Two');
break;
}
}
// 0
let num1 = 0;
switch (num1) {
case 0:
console.log('One');
break;
default:
console.log('Другое число');
}
// 1.0
let num111 = 1.0;
switch (num111) {
case 1.0:
console.log('One');
break;
case 2.0:
console.log('Другое число');
}
Ожидаемый результат:
Сканирование прошло успешно
Фактический результат:
Целые числа number, объявленные с типом или без типа, число 0 и число 1.0 были ошибочно сканированы
Метод восстановления: отсутствует
Вероятность появления: 3/3
Информация для локализации:
Вход Перед тем как оставить комментарий