Size: a a a

JavaScript.Ninja

2020 January 14

m^

mcombat ^-^ in JavaScript.Ninja
в первом случае происходит навигация при клике не происходит, во втором все ок
источник

m^

mcombat ^-^ in JavaScript.Ninja
Почему так может быть?
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in JavaScript.Ninja
Я тут с болью и унижением осознаю TypeScript, есть вопрос

[{Fuck, Suck, Buck}:Duck, ...]  (F,S,B - типы)

Нужна функция, которая превратит это в

[{Buck: {Fuck, Suck, Buck}, ...]

В смысле, вот лежали у нас какие-то элементы в массиве.  Готовые, пришедшие откуда-то. Теперь хочется индексировать этот массив, выдрав одно из полей и сделав его ключом в какой-то структуре данных, похожей на Map.

При этом хочется, чтобы компилятор TS проверил типы, и сделать всё это generic-однострочником

Вижу уже готовые определения вида:
type Pick<T, K extends keyof T> = { [P in K]: T[P]; }
type Record<K extends keyof any, T> = { [P in K]: T; }

И их использование в виде:

function mapObject<K extends string, T, U>(obj: Record<K, T>, f: (x: T) => U): Record<K, U>

const names = { foo: "hello", bar: "world", baz: "bye" };
const lengths = mapObject(names, s => s.length);
// { foo: number, bar: number, baz: number }

Но как в таком же стиле решить вопрос с "индексацией" не понимаю.

Пока что курю раздел "Index types" в  официальном мануале: https://www.typescriptlang.org/docs/handbook/advanced-types.html#index-types
источник

IK

Illya Klymov in JavaScript.Ninja
mcombat ^-^
Почему так может быть?
Вы уже на роуте с именем slug и происходит просто апдейт пропсов?
источник

V

Vyacheslav in JavaScript.Ninja
Looch
ReasonML - totally not a JS, but a language which present itself as ES2020. Another tool from FB, so it's just dangerous to use it, no one will give you a guarantee that it will be abandoned tomorrow.
Никто не даст гарантию что оно будет заброшено завтра?
источник

IK

Illya Klymov in JavaScript.Ninja
Vyacheslav
Никто не даст гарантию что оно будет заброшено завтра?
А кто даст гарантию что TypeScript не забросят?
источник

IK

Illya Klymov in JavaScript.Ninja
Более того - это просто иной AST над OCaml
источник

AS

Andrey Saenko in JavaScript.Ninja
Vyacheslav
Никто не даст гарантию что оно будет заброшено завтра?
Reason не забросят
источник

V

Vyacheslav in JavaScript.Ninja
Я просто про то что там нет "не" : )
источник

IK

Illya Klymov in JavaScript.Ninja
а OCaml живее всех живых последние 20 лет. А компилятор в JS - это BuckleScript и никакого отношения к Reason не имеет
источник

AS

Andrey Saenko in JavaScript.Ninja
Illya Klymov
а OCaml живее всех живых последние 20 лет. А компилятор в JS - это BuckleScript и никакого отношения к Reason не имеет
А правда что реакт изначально на OCaml был написан?
источник

IK

Illya Klymov in JavaScript.Ninja
нет
источник

IK

Illya Klymov in JavaScript.Ninja
прототип реакта был давным давно написан на одном из ML языков
источник

AS

Alexander Shamshurin in JavaScript.Ninja
Fiber
источник

IK

Illya Klymov in JavaScript.Ninja
но это был не OCaml
источник

IK

Illya Klymov in JavaScript.Ninja
Fiber копирует собой стековую машину OCaml да
источник

IK

Illya Klymov in JavaScript.Ninja
StandardML
источник

IK

Illya Klymov in JavaScript.Ninja
вспомнил
источник

IK

Illya Klymov in JavaScript.Ninja
прототип реакта был написан на StandardML
источник

IK

Illya Klymov in JavaScript.Ninja
Но это потому что у фб очень сильная ML-тусовка внутри
источник