Size: a a a

TypeScript — русскоговорящее сообщество

2020 April 14

PS

Pavel Shakhov (pongo) in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
👏 по полной (без map и reduce)
куда я в эту функцию впихну map?

function ok<T = undefined>(value?: T): Result<T, never> {
 return {
   isOk: true,
   isErr: false,
   value: value as T,
 } as const;
}
источник

В

Владимир in TypeScript — русскоговорящее сообщество
у кого была подобная ошибка?
Cannot read tslint configuration - 'Failed to load \tslint.json: Could not find custom rule directory: node_modules/codelyzer'
codelyzer установлен, вот так прописан:
`  "rulesDirectory": [
   "node_modules/codelyzer"
 ],`
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
потому что this - это всего лишь дополнительный implicit параметр функции (можно подставить другой this, если нужно)
вопрос только, зачем
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
какой смысл
источник

PS

Pavel Shakhov (pongo) in TypeScript — русскоговорящее сообщество
Владимир
у кого была подобная ошибка?
Cannot read tslint configuration - 'Failed to load \tslint.json: Could not find custom rule directory: node_modules/codelyzer'
codelyzer установлен, вот так прописан:
`  "rulesDirectory": [
   "node_modules/codelyzer"
 ],`
а чего не "extends": ["codelyzer"], ?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
куда я в эту функцию впихну map?

function ok<T = undefined>(value?: T): Result<T, never> {
 return {
   isOk: true,
   isErr: false,
   value: value as T,
 } as const;
}
блин, для этого вашу либу надо полностью переписывать. Если завтра понадобится зделать кроме map и reduce ещё и .ap() (Apply)? А если вдруг err и ok будут асинхронно определяться?.. Много нюансов
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
🦉 ⁣
вопрос только, зачем
Трейты (миксины) ведь тоже зачем-то придумали? У меня тоже вопрос - зачем???
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Трейты (миксины) ведь тоже зачем-то придумали? У меня тоже вопрос - зачем???
чтобы переиспользовать логику, тут ответ очевиден :)
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Трейты (миксины) ведь тоже зачем-то придумали? У меня тоже вопрос - зачем???
вообще о разном разговор
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
Maxim Sosnov
чтобы переиспользовать логику, тут ответ очевиден :)
переиспользовать - с другим this. Или проще иметь функцию, где this - параметр? Это всё ООП vs ФП
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
переиспользовать - с другим this. Или проще иметь функцию, где this - параметр? Это всё ООП vs ФП
переиспользование имеет смысл, если ты заморочался и придумал способ сделать map/ap/or универсальным для Result/Option/Custom

но давай будем честным, насколько это имеет ПРАКТИЧЕСКИЙ смысл. Когда это потребитель будет создавать свой контейнер, к которому будет применять эти map/ap/or и прочее.

И второй вопрос, кто мешает использовать fantasy-land сразу, где уже всё придумано и реализовано.

Всё что здесь скидывают это сниппеты для УДОБСТВА. И да, намного удобнее сделать result.or(another) нежели импортить or откуда-то там и применять его вообще не так семантично, как это делает метод
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
🦉 ⁣
переиспользование имеет смысл, если ты заморочался и придумал способ сделать map/ap/or универсальным для Result/Option/Custom

но давай будем честным, насколько это имеет ПРАКТИЧЕСКИЙ смысл. Когда это потребитель будет создавать свой контейнер, к которому будет применять эти map/ap/or и прочее.

И второй вопрос, кто мешает использовать fantasy-land сразу, где уже всё придумано и реализовано.

Всё что здесь скидывают это сниппеты для УДОБСТВА. И да, намного удобнее сделать result.or(another) нежели импортить or откуда-то там и применять его вообще не так семантично, как это делает метод
если убрать лишние символы

result or another
vs
or result another
источник

P

Pasha in TypeScript — русскоговорящее сообщество
Кто работал с handleaction. Можно 1 интерфейс написать для state и defaultState?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
🦉 ⁣
переиспользование имеет смысл, если ты заморочался и придумал способ сделать map/ap/or универсальным для Result/Option/Custom

но давай будем честным, насколько это имеет ПРАКТИЧЕСКИЙ смысл. Когда это потребитель будет создавать свой контейнер, к которому будет применять эти map/ap/or и прочее.

И второй вопрос, кто мешает использовать fantasy-land сразу, где уже всё придумано и реализовано.

Всё что здесь скидывают это сниппеты для УДОБСТВА. И да, намного удобнее сделать result.or(another) нежели импортить or откуда-то там и применять его вообще не так семантично, как это делает метод
Универсальной "реализации" не существует. Тот же .concat в number можно ввести через plus, mult, min, max - что конкретно нужно под конкретную Semigroup
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Универсальной "реализации" не существует. Тот же .concat в number можно ввести через plus, mult, min, max - что конкретно нужно под конкретную Semigroup
так и практического смысла в таком обобщении нет
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
ради чего?
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
чтобы было?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
🦉 ⁣
так и практического смысла в таком обобщении нет
Так никто не обопщает. У вас concat с +, а у соседней number алгебры - concat с * - и все счастливы
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪ in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
куда я в эту функцию впихну map?

function ok<T = undefined>(value?: T): Result<T, never> {
 return {
   isOk: true,
   isErr: false,
   value: value as T,
 } as const;
}
Хорошо. Допустим, у вас массив из 20 Result (err или ok) - как вы их объединяете в единый Result без reduce, определённого в Result классе?
источник

PS

Pavel Shakhov (pongo) in TypeScript — русскоговорящее сообщество
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Хорошо. Допустим, у вас массив из 20 Result (err или ok) - как вы их объединяете в единый Result без reduce, определённого в Result классе?
function combine<T extends unknown[]>(results: ResultsOfT<T>): Result<T> {
 for (const result of results) {
   if (result.isErr) return result;
 }
 return Result.ok((results as OksOfT<T>).map(result => result.value) as T);
}
источник