ECMAScript модули спроектированы неправильно?
В TypeScript 4.3 анонсировали автодополнение для импортов (это было ещё в конце мая). И это показалось мне очень забавным и всё руки не доходили написать об этом.
Идея простая: собрать все возможные экспорты и сделать по ним автокомплит. В деталях, конечно же, всё несколько сложнее. Можете почитать об этом в пул-реквесте.
А забавным мне показалось по следующей причине — в релизном блог-посте написано что-то в духе:
«а вот если бы мы писали
Это на самом деле полуправда, поскольку такое автодополнение явно ускоряет написание кода и позволяет не думать о том, как называется модуль — нужно помнить только название экспорта. Но меня это навело на мысль о том, что при проектировании и написании спецификации, судя по всему, никто не думал о том как будет работать автодополнение.
Я попытался найти какую-то информацию почему сперва import, а затем from, но ничего не вышло. Зато нашёл предложение proposal-from-import, но едва ли мы увидим какое-то развитие событий.
В TypeScript 4.3 анонсировали автодополнение для импортов (это было ещё в конце мая). И это показалось мне очень забавным и всё руки не доходили написать об этом.
Идея простая: собрать все возможные экспорты и сделать по ним автокомплит. В деталях, конечно же, всё несколько сложнее. Можете почитать об этом в пул-реквесте.
А забавным мне показалось по следующей причине — в релизном блог-посте написано что-то в духе:
«а вот если бы мы писали
from "./module.js" import { func };
вместоimport { func } from "./module.js";
то ведь и проблемы с автодополнением не было бы!»Это на самом деле полуправда, поскольку такое автодополнение явно ускоряет написание кода и позволяет не думать о том, как называется модуль — нужно помнить только название экспорта. Но меня это навело на мысль о том, что при проектировании и написании спецификации, судя по всему, никто не думал о том как будет работать автодополнение.
Я попытался найти какую-то информацию почему сперва import, а затем from, но ничего не вышло. Зато нашёл предложение proposal-from-import, но едва ли мы увидим какое-то развитие событий.