Размер luxon стоит сравнивать не только с moment+locales, но с moment+locales+moment-timezone
И вот там выигрыши получается настолько большой, что выбор очевиден. (В основном потому что в moment-timezone необходимо грузить БД с таймзонами, а в luxon используется intl API)
Не знаю что конкретно нового они недавно зарелизили, но я еще в прошлом году мог выбирать по Alt Enter нужный символ, и добавлялся импорт именно выбранного символа.
А так да, импорты хоть 5, хоть 10 точек, неважно. Все автоматом делается средой. Не могу представить тот гемор если бы делал бы это сам (и тот гемор на который люди себя толкают выбирая другие инструменты разработки).
Стоит добавить, что некоторые декораторы написанные для ES7/Babel не будут работать в typescript, из-за особенностей того как он транспилит свойства.
Например такие декораторы как noneunemerable из core-decorators работать не будут (и почти все декораторы кооторые применяются к полям).
А чего там должно стыковаться? Просто ты описываешь возвращаемую строку, в удобном тебе синтаксисе, например в jade.
Из require в компонент вернется просто строка html, такая же, какую бы ты написал от руки.
Т.е. исходя из примера внутри ./my-app.jade было бы что то вроде:
h1 {{title}}
h2 {{hero.name}} details!
div
label id:
| {{hero.id}}
div
label name:
input([(ngmodel)]='hero.name', placeholder='name')
С внутренним деревом Jade оно никак не стыкуется, если вопрос в этом.
Еще один большой плюс, такого подхода, это то что нормальная IDE например WebStorm, при переименовании файла шаблона автоматически заменит его во всех местах использования, чего не будет с простой строкой в templateUrl:.
Таким же образом можно подключать и .html файлы, без дополнительного процессинга.
Я живу в квартире, за которую заплатил чуть больше, но у неё есть подземная парковка, парковка во дворе, и парковка вокруг дома. А за моим домом стоят 4 14-этажных дома, у которых нет даже намека на инфраструутуру.
Люди паркуются на дорогре, на тротуаре, иии… в моем дворе.
Я нахожусь по эту сторону.
Пока вы будете голосовать рублем за те новостройки в которых строители не удосжились спроектировать парковку для жильцов, их будут продолжать строить.
Если вам не хватает денег на нормальное жилье с парковкой для вашей машины, то вероятнее всего нужно от чего то отказаться. А не превращать свои проблемы, в проблемы других людей, паркуя свою машину в соседнем дворе, где жильцы купили квартиру с продуманной парковкой.
Просто вы начали знакомство с Angular «не с той стороны»
Начните знакомство отсюда angularjs.org/ (с главы The Basics, знакомство займет не больше 10 минут).
И возможно вы вдохновитесь декларативным подходом, так же как и я в свое время.
Я бы обратил еще особое внимание на то, что в изолированном скоупе мы задаем переменные camelCase'ом, но в DOM они должны быть написаны через дефис, т.е:
$this->news это виртуальное свойство. При обращении к нему вызовется функция $this->getNews().
Это поведение задается магическим методом __get() класса CComponent, который является прародителем почти для всех классов в Yii.
Кажется я повременил с выводами, и в действительности обновлялось оно у меня благодаря коду angular, а не самого momentJs.
Под крутым апи я имел ввиду, что MomentJs имеет очень богатые возможности интернализации, которые так же дают возможность изменения поведения форматирования даты.
К примеру momentJs, имеет 2 метода, вывода даты от текущего числа это fromNow() и calendar(). Но мне хотелось использовать оба метода одновременно. Что бы в пределах того же дня работал метод fromNow(), а в пределах недели уже calendar(), и я это легко реализовал:
Размер luxon стоит сравнивать не только с moment+locales, но с moment+locales+moment-timezone
И вот там выигрыши получается настолько большой, что выбор очевиден. (В основном потому что в moment-timezone необходимо грузить БД с таймзонами, а в luxon используется intl API)
Специально для таких случаев существует Declaration Merging https://www.typescriptlang.org/docs/handbook/declaration-merging.html. Не нравится как описан какой то тип из тайпинов? Допиши сам!
А ставить any или того хуже @ts-ignore это подкладывать грабли себе же самому
Не знаю что конкретно нового они недавно зарелизили, но я еще в прошлом году мог выбирать по Alt Enter нужный символ, и добавлялся импорт именно выбранного символа.
А так да, импорты хоть 5, хоть 10 точек, неважно. Все автоматом делается средой. Не могу представить тот гемор если бы делал бы это сам (и тот гемор на который люди себя толкают выбирая другие инструменты разработки).
Стоит добавить, что некоторые декораторы написанные для ES7/Babel не будут работать в typescript, из-за особенностей того как он транспилит свойства.
Например такие декораторы как noneunemerable из core-decorators работать не будут (и почти все декораторы кооторые применяются к полям).
с find usages так же попробуй. Галочкой не включишь.
С require, если у тебя ошибка в названии файла, у тебя упадет на этапе компиляции в Webpack, а не в рантайме, когда ты откроешь этот компонент.
А поиском по строке пользоваться в проектах с TypeScript…
Ждали
А чего там должно стыковаться? Просто ты описываешь возвращаемую строку, в удобном тебе синтаксисе, например в jade.
Из require в компонент вернется просто строка html, такая же, какую бы ты написал от руки.
Т.е. исходя из примера внутри
./my-app.jade
было бы что то вроде:С внутренним деревом Jade оно никак не стыкуется, если вопрос в этом.
Еще один большой плюс, такого подхода, это то что нормальная IDE например WebStorm, при переименовании файла шаблона автоматически заменит его во всех местах использования, чего не будет с простой строкой в
templateUrl:
.Таким же образом можно подключать и
.html
файлы, без дополнительного процессинга.Но еще удобнее юзать вместе с webpack, и каким ни будь лоадером, например Jade (Pug):
Люди паркуются на дорогре, на тротуаре, иии… в моем дворе.
Я нахожусь по эту сторону.
Вы считаете что это нормально?
Если вам не хватает денег на нормальное жилье с парковкой для вашей машины, то вероятнее всего нужно от чего то отказаться. А не превращать свои проблемы, в проблемы других людей, паркуя свою машину в соседнем дворе, где жильцы купили квартиру с продуманной парковкой.
Начните знакомство отсюда angularjs.org/ (с главы The Basics, знакомство займет не больше 10 минут).
И возможно вы вдохновитесь декларативным подходом, так же как и я в свое время.
А так работать НЕ будет:
Это поведение задается магическим методом __get() класса CComponent, который является прародителем почти для всех классов в Yii.
www.yiiframework.com/wiki/167/understanding-virtual-attributes-and-get-set-methods/
Под крутым апи я имел ввиду, что MomentJs имеет очень богатые возможности интернализации, которые так же дают возможность изменения поведения форматирования даты.
К примеру momentJs, имеет 2 метода, вывода даты от текущего числа это fromNow() и calendar(). Но мне хотелось использовать оба метода одновременно. Что бы в пределах того же дня работал метод fromNow(), а в пределах недели уже calendar(), и я это легко реализовал:
Похоже на то что вам нужно.