Быстрая компиляция — это скучно. Давайте лучше придумаем максимальное короткий код, который гарантированно повесит компилятор. cevek вот придумал такой, что можно в 1 твит уместить:
Спасибо за статью!
Очень хорошо показано когда лучше использовать interface
. Однако, зачем тогда использовать type
— осталось не ясным.
Благодаря подсказкам уменьшил время Total time
компиляции на 15% в проекте.
Однако, зачем тогда использовать type — осталось не ясным.
Например, чтобы делать алиасы:
// Например, алиас на объединение каких-то типов.
type Easing = "ease-in" | "ease-out" | "ease-in-out";
// Или какой-то тип, который составляется из других типов
type KeysOfType<T, P> = {
[K in keyof T]: T[K] extends P ? K : never;
}[keyof T];
type PropertiesOfType<T, P> = Pick<T, KeysOfType<T, P>>;
Я предлагаю вынести описание типов из сигнатур в схемы в формате GraphQL, а в сигнатурах указывать ссылку на контекст схемы с описанием типов. Таким образом мы сможем загружать все описания как данные и даже конструировать их. Точкой входа при этом будет неймспейс класса или функции внутри класса. Но это мое предложение к разработчикам TS которое вряд-ли будет услышано.
Производительность TypeScript