| 
		
			 Цитата: 
		
	 | 
	| 
		уже ж несколько раз вроде как пытались "причесать" JS к типизации и классам, но ничего хорошего из этого не получалось...
	 | 
	
Ну, опциональные типы в JS реально нужны как воздух и их таки добавят в ES7 или ES8. А сейчас приходится костылить с jsDoc, хотя я уже привык, но было бы приятнее писать:
var foo : {foo: string, bar: boolean} = getSome();
вместо
/** @type {{foo: string, bar: boolean}} */
var foo = getSome();
Ну или сделать литеральные аннотации
@type {{foo: string, bar: boolean}}
var foo = getSome();