Predicting typeScript type annotations and definitions with machine learning