@typescript_ru

Страница 165 из 669
Дмитрий
30.01.2017
09:09:59
Мне нужно сделать pluck по объектам

Есть набор данных из чатов, из каналов, и из обычных диалогов

Со всеми нужно делать одинаковые операции

Потом на следующем уровне вложенности повторяем тот же принцип

Google
Aleh
30.01.2017
09:11:13
хах ну да лучше, ага hasAttachment(chat.message) -> hasPhoto(message.user) -> ->getPhoto(user.photo)
только это в разных местах вызовы, если есть attachment, то пускай кто-то кто знает как с ним работать с ним и работает, а он уже в себе hasPhoto и т.д.

Дмитрий
30.01.2017
09:11:23
И так пока не посмотрим на приложение и не подумаем, что кажется что-то идёт не так

Дмитрий
30.01.2017
09:12:00
Допустим, юзер без аватарки

?
Не ну а чо они))

andretshurotshka?❄️кде
30.01.2017
09:15:19
Так везде path из рамды)

Дмитрий
30.01.2017
09:15:39
Воо))

Он же по сути как раз и работает как elvis

andretshurotshka?❄️кде
30.01.2017
09:16:02
А ок)

Дмитрий
30.01.2017
09:29:24
что это заставляет меня немного думать о декомпозиции
Редюсер занимается исключительно извлечением фоток, индифферентно к структуре ответа, извлекает фотки из chat.message.user.photo.id dialog.message.user.photo.id и так далее. Именно из-за его безразличности к любым отсутствиям полей в пути, мы можем инкапсулировать всё извлечение фоток в одном месте, не дублируя код В общем, я к тому, что разные кейсы есть, и когда ты начинаешь думать, что готов ко всему, жизнь показывает тебе GraphQL наоборот

Котяй Негодяй
30.01.2017
17:51:59
А как мне сделать пакет flow-совместимым?

Ведь импортируется (import muPackage from 'my-package';) код после транспиляции.

Vladimir
30.01.2017
17:54:35
нужно положить рядом с точкой вход файл .flow

Google
Vladimir
30.01.2017
17:54:43
т е index.js.flow

который перенаправляет на исходники

Котяй Негодяй
30.01.2017
17:56:39
т е index.js.flow
А в самом index.js.flow должны быть исходникики?

Vladimir
30.01.2017
17:57:17
там нужно просто реэкспортировать

пример

исходники в src, скомпилированной в lib

в корне index.js

в нем

module.exports = require('./lib/index.js')

рядом с ним index.js.flow

в нем

import foo from './src/index.js'

export default foo;

ну или так

Котяй Негодяй
30.01.2017
17:59:05
Спасибо. =)

ну или так
Ок. Тогда, нужно добавлять в "files" исходники и директорию flow-typed. А .flowconfig проекта добавлять нужно?

Vladimir
30.01.2017
18:24:39
нет, нужно делать так чтобы .flowconfig был совместимым

Котяй Негодяй
30.01.2017
18:25:03
Vladimir
30.01.2017
18:25:28
будет учитываться только .flowconfig родительского проекта

он должен учитывать зависимость, чтобы она тайпчекалась

Google
Котяй Негодяй
30.01.2017
18:48:22
он должен учитывать зависимость, чтобы она тайпчекалась
То есть если в моём пакете 100500 зависимостей, чьи типы объявлены в flow-typed, то в зависимом проекте необходимо это продублировать? о.0

Vladimir
30.01.2017
18:49:02
ну они должны быть установлены, да

Котяй Негодяй
30.01.2017
18:49:51
Очень странное решение. Получается, что тот, кто использует пакет, вынужден будет сам поддерживать его зависимости.

А вот это как типизировать? import polyfills from '../config/polyfills.json';

Vadim
31.01.2017
01:50:31
Народ! Использует ли тут кто istanbul вместе с ts?

Как сделать так что б в репортах подсвечивались корректные линии?

Видимо где-то слетает на уровне сорсмапов

http://dl3.joxi.net/drive/2017/01/31/0018/3328/1215744/44/5001d544a9.jpg

Собираю вебпаком

Сергей
31.01.2017
04:46:07
Видимо тут все телепаты

Vadim
31.01.2017
04:47:48
karma.conf.js: const webpackConfig = require('./webpack-test.config.js'); module.exports = function (config) { config.set({ basePath: '..', frameworks: ['mocha', 'chai', 'sinon'], files: [ './src/**/*.spec.ts' ], exclude: [], preprocessors: { './src/**/*.spec.ts': ['webpack'] }, // optionally, configure the reporter coverageReporter: { dir: 'coverage', reporters: [ { type: 'html', dir: './coverage', subdir: '.' } ] }, webpack: webpackConfig, reporters: ['progress', 'coverage'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['PhantomJS'], singleRun: false, concurrency: Infinity }) };

tsconfig.json: { "compilerOptions": { "baseUrl": "..", "noEmitOnError": true, "noImplicitAny": true, "importHelpers": true, "noImplicitReturns": true, "strictNullChecks": true, "skipLibCheck": true, "moduleResolution": "node", "module": "ES6", "target": "ES5", "lib": ["dom", "es6"], "jsx": "react", "sourceMap": true, "paths": { "*": [ "src/custom-typings/*", "src/*" ] } }, "files": [ "../src/index.tsx" ] }

Oleg
31.01.2017
04:50:03
кто InversifyJS на практике использует?

Aleh
31.01.2017
07:32:57
С ts он все аннотации типов подсвечивал как непокрытые

Год назад где-то, с тех пор не пробовал

Котяй Негодяй
31.01.2017
07:36:55
#flow А вот нужна ли типизация запросов к эластику в виде отдельного пакета? Писать, всё равно, придётся, но, может быть, кому-нибудь ещё пригодится. И как такой пакет вообще оформить, если всё, что я хочу выложить, — это аннотации типов? Просто экспорт исходника и всё? И зависимый код потом нормально будет выполняться? https://www.elastic.co/guide/en/elasticsearch/reference/5.1/query-dsl.html

Aleksandr
31.01.2017
07:57:25
Начал работать с WebPack. Скажите, что я делаю не так: Вот я создал файл one.js с сожержимым: module.exports = function (meaning) { var variable = meaning; }; Файл two.js: module.exports = function () { var variable2 = 20; }; И файл main.js: var sayHello = require('./one'); var sayHello2 = require('./two'); var variable = sayHello(23); var variable2 = sayHello2(); console.log(variable); console.log(variable2); Далее прописал в командной строке webpack /public/test/main.js bundle.js В итоге переменные variable и variable2 не отображаются. Почему так? Как делать правильно?

Gordey
31.01.2017
08:01:46
наверно потому что ты ничего из функции не возвращаешь

Google
Gordey
31.01.2017
08:02:09
тут не в вебпаке проблема, js подтянуть надо

Aleksandr
31.01.2017
08:03:02
Я просто сборщиками не пользовался до этого, сейчас только начинаю понимать, как что и почему

Котяй Негодяй
31.01.2017
08:41:34
А Flow умеет парсить какое-нибудь описание типов? Ну, чтобы, например, выдаваеть его в качестве доп информации при вызове flow autocomplete.

Admin
ERROR: S client not available

Котяй Негодяй
31.01.2017
08:43:38
Например: /** * Функция бла-бла-бла. Делает бла-бла-бла. */ type MyFunctionType = ...:

Хотя было бы логичнее выдавать информацию из describe('...', ...) в тестах.

Aleh
31.01.2017
08:53:17
Это как?)

Например: /** * Функция бла-бла-бла. Делает бла-бла-бла. */ type MyFunctionType = ...:

В describe/context могут быть произвольные строки же

Aleh
31.01.2017
09:35:36
context?
Mocha/jasmine

Синоним для describe

Котяй Негодяй
31.01.2017
09:41:55
А... =)

Ну ладно. Flow, я так полагаю, эту спеку читать не умеет?

Aleh
31.01.2017
10:13:41
Ну ладно. Flow, я так полагаю, эту спеку читать не умеет?
Ну никто не умеет и кмк не планирует уметь

Котяй Негодяй
31.01.2017
10:54:16
У меня объявлен тип: export type RequestType = { query?: QueryType, size?: number, }; Но Flow ничего не возражает, если я сделаю так: const request: RequestType = { invalidParam: 'invalidValue', }; Как запретить левые свойства в объекте?

Пардон. Разобрался. =)

export type RequestType = {| query?: QueryType |};

Google
andretshurotshka?❄️кде
31.01.2017
11:06:38
Есть же флоу чат теперь @flowtype_ru

Котяй Негодяй
31.01.2017
11:07:47
Vladislav
31.01.2017
12:30:24
Всем привет, что лучше для компиляции es6 фич, тайпскриптовый компилятор или бабель?) А ссылки есть?)

andretshurotshka?❄️кде
31.01.2017
12:38:53
Бабель

Friedrich
31.01.2017
12:44:19
TS-компилятор.

Бабель у меня не мог от массива отнаследоваться правильно (≡ шоб хоть как-то работало), а tsc влёгкую.

Vladimir
31.01.2017
12:46:28
это вряд ли

Friedrich
31.01.2017
12:47:46
Хотя в итоге я, конечно, наркоманию с наследованием от массива просто выпилил :)

Aleh
31.01.2017
12:49:20
я б тоже бабель юзал

тогда и тс можно на полную юзать

он понимает символы и все с ними связанное тогда

итераторы и прочее

Friedrich
31.01.2017
12:49:58
А TS не умеет компилировать символы в ES5?

А, или там просто полифилл нужен для итераторов?

Aleh
31.01.2017
12:50:39
А TS не умеет компилировать символы в ES5?
он их неправильно понимает

Страница 165 из 669