2016-03-28 5 views
-2

Я использую TypeScript на Node.js. TypeScript проверяет типы во время компиляции, но код JavaScript после компиляции не проверяет типы. Например, этот код выдает ошибку:Проверка типа при запуске кода

var test : number; 
test = 'test'; 

Но этот код на экспрессе будет работать в обычном режиме:

app.post('/', function(req, res, next) { 
    var test : number; 
    test = req.body.test; 
    res.end(req.body.test); 
}); 

В результате, у меня есть test с строковым типом, хотя test был рядом. Как я могу избежать этой проблемы? Как проверить тип переменных при запуске кода?

+5

Точка TypeScript является проверкой типа _static_, а не проверкой типа времени выполнения – elclanrs

+0

Существуют ли какие-либо инструменты для проверки типов выполнения на JavaScript? –

+3

'if (typeof test === 'string') ... else throw new TypeError (...)' – elclanrs

ответ

0

How do I check the type of variables when code is running

В основном это машинописи выводя типа req быть any. Это означает, что он полностью не проверен в значительной степени.

Вы можете отключить это с помощью опции noImplicitAny, а затем TypeScript будет отмечать ошибки, если он не может определить тип переменной. Это сделало бы ваш пример кода компиляцией ошибки.