some, если нужен именно map с остановкой цикла - тут следует использовать for либо какую-нить либу, которая это умеет.map там где должен быть прерван цикл или там где не нужно получения нового массива - они говнокодеры.for там где идеально справился бы map - вы старпёр, бессмысленно раздувающий и усложняющий код.foo as unknown as Type - двойным кастованием вы можете скастовать что угодно во что угодно. T extends [], K extends keyof T - K тут что-то производное от number, потому что ключи(keyof) массива([]) - только цифры.let resultSort: T = arr; - бессмысленно, так как arr.sort в любом случае меняет исходный массив.a[propertyName].toLowerCase() - упадёт если propertyName будет year, т.к. Number не имеет метода toLowerCase.function sortArray<T extends {[key: string]: unknown}, K extends keyof T> (originArr: T[], propertyName: K, cb: (a: T[]) => T[]): T[] {
let arr: T[] = JSON.parse(JSON.stringify(originArr)); //deep copy array
arr.sort((a, b) => {
let nameA = String(a[propertyName]).toLowerCase(),
nameB = String(b[propertyName]).toLowerCase();
if (nameA < nameB)
return -1;
if (nameA > nameB)
return 1;
return 0;
});
return cb(arr);
}String, но тогда вместо unknown надо указать конкретные типы с которыми предполагается работать, и в самой функции сортировки их учесть. vue create.webpack - универсальная система сборки приложения, vue-cli(-<some>) - набор тулз для работы конкретно c vue, внутри использующий в том числе webpack со множеством преднастроек и плагинов. .browserslistrc примерно следующего содержания:> 1%
last 2 versions
ie11'@babel/preset-env' добавь: useBuiltIns: 'usage'post ты никак не должен навешивать класс post__<some>, это внутренний класс компонента. Если снаружи предполагается какая-то модиикация содержимого компонента - то только через props или slot. Назначаемый компоненту класс должен иметь влияние только на сам компонент целиком и не должен ничего знать о внутренней структуре. v-if и v-show, то предпочтительнее юзать оные. link:./path или file:./path.