У меня есть настройка цепочки сборки, которая преобразует файл из coffeescript в typescript в javascript. Мой вопрос: какой минимально интрузивный способ добавить сигнатуры типов к функции coffeescript?
coffeescript поддерживает raw javascript через обратные ссылки. Однако это означает, что coffeescript больше не понимает фрагмент backtick.
Coffeescript отвергает эти:
f = (`a:String`) -> a + 2
f = (a`:String`) -> a + 2
Я могу написать это выше функции:
`var f = (String) => any`
Он компилируется, но не выполняет проверку типов. Я думаю, это потому, что Coffeescript уже объявила переменную.
Единственный способ, которым я мог понять, как заставить его работать, требует много шаблонов
f = (a) ->
`return (function(a:String){`
a + 2;
`})(a)`
Backticks, похоже, не работают должным образом в новом компиляторе Coffeescript Redux: https://github.com/michaelficarra/CoffeeScriptRedux/issues/71
Я хорошо знаю, что это сомнительная работа, сейчас это просто эксперимент. В настоящее время я использую contracts.coffee, но я ищу актуальные типы.