file.mp43,9 Мб, mp4,
224x224, 1:42
Хочу сколотить капитал. И учиться. учебнонакопительный!1LoKsuEs0s 761654 В конец треда | Веб
Хочу сколотить капитал. И учиться.
image.png54 Кб, 1279x697
1 day учебнонакопительный!1LoKsuEs0s 2 761655
Решал очередную задачу по Тайпскрипту - аж 33 минуты! Сайт ни в какую не хотел принимать мой, написанный за 2 минуты, изначальный вариант - "Record<infer K, any>...[K] extends [never]": не проходил тест с "object". Пришлось проверять [keyof T] и Record<_, any> поменять на Record<_, string>. Почему-то это сработало. Подбирал комбинаторно.

Сегодня ничего не заработал.

money:
wallet - [0_000] RUB
crypto - [0_000] $
2 day учебнонакопительный!1LoKsuEs0s 3 761814
Снова Тайпскрипт.

Первую задачу решил слёту. Она простая.

Над второй сидел больше 20 минут, пытаясь решить через вереницу тернарных операторов, отсеивая тип за типом. Никак не получалось отличать "never" от "any". В итоге нашел объяснение в Интернете. Проверка через условные типы - "0 extends (1 & T)" - работает для any: почему-то Тайпскрипт мёрджит "1 & any" -> "any", поэтому срабатывает проверка "0 extends any". С остальными типами единица остаётся.

Сегодня ничего не заработал.

money:
wallet - [0_000] RUB
crypto - [0_000] $
4 761815
>>1814
Разобрался. "any" - супертип и поглощает (расширяет) все подтипы в юнитах.

В документации написано на примере строки общим типом и константых строк. Запустил пример в плейграунде.

На сегодня всё.
3 day учебнонакопительный!1LoKsuEs0s 5 761924
Тайпскрипт. Три задачки.

Первая задача тривиальная.

Решение для второй задачи написал сразу, но тесты не проходили. Спустя 12 минут добавил значение по умолчанию для третьего типа (A extends any[] = []) - и всё прошло.

Третья задача тоже простая, но снова не понятно, почему он не подхватывает "infer F as string" и "...infer R as string[]", если изначально "T extends string[]". Может в следующих версиях исправят.

Сегодня заработал 10 000 рублей - 8 000 рублей в копилку.

money:
wallet - [8_000] RUB
crypto - [0_000] $
4 day sage учебнонакопительный!1LoKsuEs0s 6 762066
Тайпскрипт. Две задачи.

Над первой пришлось немного покумекать, но в целом ничего сложного. Не сразу сообразил, как правильно решить через рекурсию. Надо было увеличивать как результирующее множество, так и множество-счетчик.

Вторая задача посложнее. Проверяем, дошли ли мы в итерации по кортежу до конца: 1. если да - возвращаем множество-аккумулятор; 2. если нет - проверяем, совпадает ли текущий тип с заданным (через строгое сравнение); 2.1. если совпадает - добавляем тип в множество-аккумулятор и вызываем проверку рекурсивно с оставшимися типами; 2.2 если не совпадает - оставляем множество-аккумулятор в прежнем состоянии и вызываем проверку рекурсивно с оставшимися типами.

Сегодня ничего не заработал.

money:
wallet - [8_000] RUB
crypto - [0_000] $
image.png19 Кб, 715x261
учебнонакопительный!1LoKsuEs0s 7 762071
>>2066
1. [any] extends [number] ? 1 : 2; // 1
2. any extends number ? 1 : 2; // 1 | 2

Я так и не смог разобраться, почему без скобок запиналось на "any extends number" во второй задаче. Эх, вот бы кто-нибудь умный объяснил...
image.png22 Кб, 523x246
sage 8 762072
>>2071
Вот такой результат без скобок "[1, 2] | [1, 2, any]". Со скобками же множества объединяются "(1 | 2 | any)[]" - правильно понял?
Обновить тред
« /dr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее