TypeScript не следует семверу
Сломал сегодня проект обновляясь с одной минорной версии TypeScript на другую и с удивлением узнал, что они не следуют семверу.
Вообще, наверное странно было ожидать обратного, ведь никто не обязан этого делать. Но за десять лет во фронтенде как-то привыкаешь, что все библиотеки без исключения при версионировании следуют правилу, что изменения, ломающие обратную совместимость, должны повышать мажорную версию.
Если же разработчики не хотят с этим связываться, то они просто не выходят из версии 0.x. Как разработчики Axios этак лет 8 с момента старта проекта.
Но в случае TypeScript мажорной нужно считать не первую, а вторую версию:
TypeScript never claimed to follow semantic versioning, in the sense that breaking changes imply major versions.
TypeScript, however, promises no breaking changes after a stable release. So no breaking changes between
2.1.5and2.1.6,2.1.*.My recommendation is fix your version of typescript to
major.minorinstead of just major. E.g.^2.1and not^2.