{[K in keyof T]: ...}
- это специальный особый паттерн, где ты итерируешься по ключам "локального типа" внутри генерика (аналог локальной переменной внутри функции). Важен тот факт, что тип именно локальный - либо параметр генерика, либо что-то, извлеченное с помощью infer.type MappedGenericStringType1<T, Keys extends keyof T = keyof T> = {
[K in Keys]: any;
};
// или так
type MappedGenericStringType2<T> = keyof T extends infer Keys extends keyof T ? {
[K in Keys]: any;
} : never;
когда тебе говорят выполнить ТЗ, которое не является для тебя вызовом и занимает всего час времени, а потом не отвечают вообще - это довольно грустно
Стоит ли пытаться "удивить" проверяющего? Есть ли прок от того, что в задании, где просят написать коротенький код, я его дополняю, подключая celery, меняя базу данных с локальной на более релевантную, засовывая приложение в докер образ?
filter
(а ещё Safari - говорят, яблочные уроды пока не реализовали поддержку методов итераторов; впрочем, сделать обычный for...of
вместо reduce
не проблема):function countIntersections(data1, data2, key = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const keys = new Set(Array.from(data2, getKey));
return data1[Symbol.iterator]().reduce((acc, n) => acc + keys.has(getKey(n)), 0);
}
const result = countIntersections(newWord, glas);
.countIntersections(Array(7).keys(), Array(4).keys()) // 4
countIntersections('abCdE', 'ACe', n => n.toLowerCase()) // 3
countIntersections([ { id: 1 }, { id: 2 }, { id: 3 } ], [ { id: 3 } ], 'id') // 1
import {myFunc} from '....';
........
const handleChangeRoadCosts = (id: number, keyVal: string, val: string) => {
return myFunc(id, keyVal, val, data);
};
Куда легче всего пробиться в программирование?
Мне вообще всё равно, куда идти в плане доходов (лишь бы на еду хватало)
поскольку знаю, что я не выдающийся человек ни в чём
- Теоретический опыт по книгам по Java,
Подозреваю, что сейчас это знает каждый школьник.
Что вы мне посоветуете?
interface CSS {
[k: string]: {
[k: string]: string | number
}
}
const css = {
default: {
color: '#676767',
border: '1px solid',
border_color: '#C4C4C4',
border_radius: '110px',
padding: '16px 21px',
}
} satisfies CSS;
type Schemas<P extends keyof paths> = paths[P]['post'] extends {requestBody: infer R} ? R : never;