3,9 Мб, mp4,
224x224, 1:42
224x224, 1:42
Хочу сколотить капитал. И учиться.
54 Кб, 1279x697
Решал очередную задачу по Тайпскрипту - аж 33 минуты! Сайт ни в какую не хотел принимать мой, написанный за 2 минуты, изначальный вариант - "Record<infer K, any>...[K] extends [never]": не проходил тест с "object". Пришлось проверять [keyof T] и Record<_, any> поменять на Record<_, string>. Почему-то это сработало. Подбирал комбинаторно.
Сегодня ничего не заработал.
money:
wallet - [0_000] RUB
crypto - [0_000] $
Сегодня ничего не заработал.
money:
wallet - [0_000] RUB
crypto - [0_000] $
Снова Тайпскрипт.
Первую задачу решил слёту. Она простая.
Над второй сидел больше 20 минут, пытаясь решить через вереницу тернарных операторов, отсеивая тип за типом. Никак не получалось отличать "never" от "any". В итоге нашел объяснение в Интернете. Проверка через условные типы - "0 extends (1 & T)" - работает для any: почему-то Тайпскрипт мёрджит "1 & any" -> "any", поэтому срабатывает проверка "0 extends any". С остальными типами единица остаётся.
Сегодня ничего не заработал.
money:
wallet - [0_000] RUB
crypto - [0_000] $
Первую задачу решил слёту. Она простая.
Над второй сидел больше 20 минут, пытаясь решить через вереницу тернарных операторов, отсеивая тип за типом. Никак не получалось отличать "never" от "any". В итоге нашел объяснение в Интернете. Проверка через условные типы - "0 extends (1 & T)" - работает для any: почему-то Тайпскрипт мёрджит "1 & any" -> "any", поэтому срабатывает проверка "0 extends any". С остальными типами единица остаётся.
Сегодня ничего не заработал.
money:
wallet - [0_000] RUB
crypto - [0_000] $
>>1814
Разобрался. "any" - супертип и поглощает (расширяет) все подтипы в юнитах.
В документации написано на примере строки общим типом и константых строк. Запустил пример в плейграунде.
На сегодня всё.
Разобрался. "any" - супертип и поглощает (расширяет) все подтипы в юнитах.
В документации написано на примере строки общим типом и константых строк. Запустил пример в плейграунде.
На сегодня всё.
Тайпскрипт. Три задачки.
Первая задача тривиальная.
Решение для второй задачи написал сразу, но тесты не проходили. Спустя 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] $
Первая задача тривиальная.
Решение для второй задачи написал сразу, но тесты не проходили. Спустя 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] $
Тайпскрипт. Две задачи.
Над первой пришлось немного покумекать, но в целом ничего сложного. Не сразу сообразил, как правильно решить через рекурсию. Надо было увеличивать как результирующее множество, так и множество-счетчик.
Вторая задача посложнее. Проверяем, дошли ли мы в итерации по кортежу до конца: 1. если да - возвращаем множество-аккумулятор; 2. если нет - проверяем, совпадает ли текущий тип с заданным (через строгое сравнение); 2.1. если совпадает - добавляем тип в множество-аккумулятор и вызываем проверку рекурсивно с оставшимися типами; 2.2 если не совпадает - оставляем множество-аккумулятор в прежнем состоянии и вызываем проверку рекурсивно с оставшимися типами.
Сегодня ничего не заработал.
money:
wallet - [8_000] RUB
crypto - [0_000] $
Над первой пришлось немного покумекать, но в целом ничего сложного. Не сразу сообразил, как правильно решить через рекурсию. Надо было увеличивать как результирующее множество, так и множество-счетчик.
Вторая задача посложнее. Проверяем, дошли ли мы в итерации по кортежу до конца: 1. если да - возвращаем множество-аккумулятор; 2. если нет - проверяем, совпадает ли текущий тип с заданным (через строгое сравнение); 2.1. если совпадает - добавляем тип в множество-аккумулятор и вызываем проверку рекурсивно с оставшимися типами; 2.2 если не совпадает - оставляем множество-аккумулятор в прежнем состоянии и вызываем проверку рекурсивно с оставшимися типами.
Сегодня ничего не заработал.
money:
wallet - [8_000] RUB
crypto - [0_000] $
19 Кб, 715x261
>>2066
1. [any] extends [number] ? 1 : 2; // 1
2. any extends number ? 1 : 2; // 1 | 2
Я так и не смог разобраться, почему без скобок запиналось на "any extends number" во второй задаче. Эх, вот бы кто-нибудь умный объяснил...
1. [any] extends [number] ? 1 : 2; // 1
2. any extends number ? 1 : 2; // 1 | 2
Я так и не смог разобраться, почему без скобок запиналось на "any extends number" во второй задаче. Эх, вот бы кто-нибудь умный объяснил...
22 Кб, 523x246
Обновить тред>>2071
Вот такой результат без скобок "[1, 2] | [1, 2, any]". Со скобками же множества объединяются "(1 | 2 | any)[]" - правильно понял?
Вот такой результат без скобок "[1, 2] | [1, 2, any]". Со скобками же множества объединяются "(1 | 2 | any)[]" - правильно понял?