#javascript #error-handling #typescript
#javascript #обработка ошибок #typescript
Вопрос:
Я пишу код TypeScript, который затем компилируется в Javascript, и несколько вызовов динамических функций выполняются непосредственно из браузера в Javascript, а не в typescript. Когда вы пишете функцию TypeScript с аннотациями типов, она выдает ошибку, если что-то имеет неправильный тип. Например, простая функция
function add(a: number, b: number): number{
return a b;
}
компилируется в типизированный
function add(a, b) {
return a b;
}
Есть ли какая-либо возможность скомпилировать его и добавить проверку типов в точке входа функции?
Ответ №1:
Да, есть способ проверить тип во время выполнения, но вам придется использовать TS *, а не TypeScript. TypeScript стирает всю информацию о типе во время компиляции, оставляя вам чистый код JavaScript.
Постепенный ввод текста, надежно внедренный в JavaScript, представляет TS* — постепенно типобезопасный язык в JavaScript.
Идея в том, что компиляция внесет серьезные преобразования в ваш код, чего они не стремились делать в TypeScript.
Если это не то, что вам действительно необходимо (возможно, по соображениям безопасности, описанным в техническом документе), возможно, вам лучше использовать более распространенные проверки во время разработки и компиляции, предлагаемые TypeScript.
Ответ №2:
Typescript не поддерживает отправляющий код проверки типов, любая необходимая проверка типов должна быть добавлена вручную с использованием instanceof, typeof и т.д. Так же, как вы бы делали для обычного JS.
Поговаривали о добавлении его в качестве необязательного флага, но начиная с версии 1.0.3 флага нет.
Ответ №3:
TypeScript действительно обеспечивает только проверку типов во время компиляции, но всегда компилируется в JavaScript без ввода.
Если вас беспокоит проверка типов во время выполнения, вы можете добавить свои собственные вызовы для typeof
или instanceof
для выполнения проверок. http://javascript.info/tutorial/type-detection