Size: a a a

JavaScript.Ninja

2020 April 02

K

Krau5 in JavaScript.Ninja
почему так?
чисто из интереса спрашиваю, ибо как я увидел, то filter и map работают по похожему принципу, решил протестить, но мап прошел задачьку, а вот фильтр нет
источник

K

Krau5 in JavaScript.Ninja
они же оба по сути проходят список и делают с ним то, что прописано
источник

VK

Vladimir Klimov in JavaScript.Ninja
Krau5
они же оба по сути проходят список и делают с ним то, что прописано
Функция, передаваемая в фильтр, возвращает boolean, он не меняет элементы массива, а фильтрует массив
источник

VV

Varenic Victor in JavaScript.Ninja
фильтр решает должен элемент остаться или нет
источник

VK

Vladimir Klimov in JavaScript.Ninja
value*2 всегда true, потому фильтр вернул идентичный массив тому, на котором был вызван
А цель мапа - как раз изменить как-то каждый элемент массива
источник

VT

Vladyslav Tamashchuk in JavaScript.Ninja
Vladimir Klimov
value*2 всегда true, потому фильтр вернул идентичный массив тому, на котором был вызван
А цель мапа - как раз изменить как-то каждый элемент массива
не всегда, value может быть 0, строкой
источник

VK

Vladimir Klimov in JavaScript.Ninja
Vladyslav Tamashchuk
не всегда, value может быть 0, строкой
Не может, есть конкретный массив
источник

VK

Vladimir Klimov in JavaScript.Ninja
Я говорю о частном случае на скрине
источник

K

Krau5 in JavaScript.Ninja
Ага, понел. В фильтре воспринимается булево значение, в мапе просто производится функция, правильно?
источник

AD

Andrew Deimos in JavaScript.Ninja
В фильтре передают функцию-валидатор, которая проверяет каждый из элементов на условие и возвращает булевый флаг, по значению которого элемент включается или нет в новый массив.
источник

AS

A S in JavaScript.Ninja
Подскажите по тайпскрипту. Что-то сообразить не могу

type Tasks = {
  status: string
  id: string
}

На входе имеет  тип:  Array<{ __typename?: 'Task' } & Tasks>
На выходе имеем тип: Array<Tasks>

Использую омит из лодаша

const omittedTasks = taskData.map(task => omit(task, ['__typename'])); и передаю в пропсах в компонент, который ожидает тип Array<Tasks>

Но ts ругается сооветственно

Мне нужно generic прописать каким-то образом

тип так const omittedTasks = taskData.map(task => omit<T1, T2>(task, ['__typename']));

Верно?

что будет T1, а что T2?
источник

АК

Александр Кузьмичёв in JavaScript.Ninja
я кастомизирую rules для eslint-plugin-vue и мне очень нравятся используемые там utils. но их нет в публичном интерфейсе. я конечно могу на них сослаться через 'eslint-plugin-vue/lib/utils', но мало ли что там поменяется, так что это не самый стабильный вариант. альтернативный путь - просто скопировать нужные функции себе. насколько я понимаю, MIT этого не запрещает (в т.ч. в коммерческих проектах). но насколько это адекватное решение вообще?
источник

AS

A S in JavaScript.Ninja
к вопросу выше

const omittedTasks = taskData.map(task => omit<Task>(task, ['_typename']));

получаю ошибку

Type 'Partial<Task>[]' is not assignable to type 'Task[]'.
источник

AS

A S in JavaScript.Ninja
где я ошибаюсь?(
источник

AS

A S in JavaScript.Ninja
почему Partial возврщает то(хм
источник

А

Алексей in JavaScript.Ninja
A S
почему Partial возврщает то(хм
Я слаб в тс, но по логике он и должен вернуть Partial, ты ведь что-то забыл из таски, соответственно это больше не таска
источник

AS

A S in JavaScript.Ninja
Алексей
Я слаб в тс, но по логике он и должен вернуть Partial, ты ведь что-то забыл из таски, соответственно это больше не таска
я немного ошиблась

у меня вот так

const omittedTasks = taskData.map(task => omit<T1>(task, ['_typename']));

T2 - это тип уже без _typename

я делаю

const omittedTasks = taskData.map(task => omit<T2>(task, ['_typename']));

Возвращает Partial<T2>[]

А я жду просто T2[]
источник

AS

A S in JavaScript.Ninja
а все

я поняла
источник

AS

A S in JavaScript.Ninja
спасибо
источник
2020 April 03

R

Roman in JavaScript.Ninja
Как клиент может вычислить контрольную сумму, чтобы потом сверить с тем, что сервер посчитает?
источник