Типы TypeScript после компиляции обычно не проверяются: строка останется строкой, а результат зависит от выполняемой операции JavaScript.
Что произойдёт в уже скомпилированном приложении, если вместо ожидаемого числа передана строка?
Типы TypeScript после компиляции обычно не проверяются: строка останется строкой, а результат зависит от выполняемой операции JavaScript.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт в уже скомпилированном приложении, если вместо ожидаемого числа передана строка?
Ответ
Типы TypeScript после компиляции обычно не проверяются: строка останется строкой, а результат зависит от выполняемой операции JavaScript.
Например, '2' + 1 даст '21', а умножение может выполнить числовое приведение; вызов несуществующего метода способен завершиться ошибкой. Аннотация number не превращает входные данные в число. На границах API используйте runtime-проверку и явное преобразование с обработкой недопустимых значений, а не только приведение типа через as.