const
- это очень полезное дополнение, предлагаемое ES6 / TypeScript. Это позволяет делать переменные неизменяемыми. Это хорошо как с точки зрения документации, так и во время выполнения. Чтобы использовать в коде, просто замените var
на const
:
const foo = 123;
Предлагаемый синтаксис намного лучше, чем в других языках, которые вынуждают использовать что-то типа
let constant foo
, т. е. переменная + спецификатор поведения.
const
является хорошей практикой для читаемости и для поддерживаемости кода, позволяет избегать такого использования:
// нечитаемо
if (x > 10) {
}
// намного лучше!
const maxRows = 10;
if (x > maxRows) {
}
Пример ниже вызовет ошибку компилятора:
const foo; // Ошибка: const переменная должна быть инициализирована
Константы являются неизменными после создания, поэтому если вы попробуете присвоить ей новое значение, вы получите ошибку компиляции:
const foo = 123;
foo = 456; // Ошибка: Левая часть выражения не может быть константой
const
создается в контексте блока, как и let
:
const foo = 123;
if (true) {
const foo = 456; // Корректно, потому что новая переменная ограничена контекстом блока `if`
}
const
работает с объектами, а также защищает "ссылки" на переменные:
const foo = { bar: 123 };
foo = { bar: 456 }; // Ошибка : Левая часть выражения не может быть константой
Однако, const
позволяет изменять подсвойства объектов:
const foo = { bar: 123 };
foo.bar = 456; // Корректно!
console.log(foo); // { bar: 456 }
Поэтому я рекомендую использовать const
с примитивами или неизменяемыми структурами данных.