@typescript_ru

Страница 128 из 669
Vladimir
04.12.2016
21:09:24
оно как минимум any в typeof

Но и внутри тоже

Котяй Негодяй
04.12.2016
21:10:02
any — значит, что, следуя твоей логике, чтобы тебе засчитали 100% coverage, ты должен перечислить ВСЁ в этих if-конструкциях.

Nikita
04.12.2016
21:10:08
вот почему внутри - непонятно. по coverage я это увидел, да

Google
Котяй Негодяй
04.12.2016
21:10:22
А всё — это много, я подозреваю.

Vladimir
04.12.2016
21:10:57
С точки зрения type system any не нуждается в рефанменте

потому что он и так является подтипом любого типа

Nikita
04.12.2016
21:12:24
просто на мой взгляд, как пользователя, есть безопасные операции с any, а есть опасные. typeof e - безопасно e.message - небезопасно можно смотреть, что на 1 уровне нет небезопасных операций с e и все будет ок

Vladimir
04.12.2016
21:13:20
да, пожалуй.

Котяй Негодяй
04.12.2016
21:13:22
Мне кажется, это усложнение для либы.

Nikita
04.12.2016
21:13:44
усложнение flow? типо ща там все просто))

Котяй Негодяй
04.12.2016
21:14:33
Я не могу толком аргументировать, почему это мне не нравится. Тогда flow будет лезть не в своё дело немного. Как-то так. =)

Nikita
04.12.2016
21:15:01
есть такая штука, как флаги)

Котяй Негодяй
04.12.2016
21:15:08
Слишком частный кейс, который должен будеть описывать при этом огромное количество вариантов.

Nikita
04.12.2016
21:15:37
а еще есть приоритеты фейсбука) вот то что им coverage в try-catch не приоритетен - вот в это верю)

Котяй Негодяй
04.12.2016
21:16:07
Проще разрешить типизацию e, оставив это на совесть разработчика, с ворниногм в документации. Не для маленьких детей же инструмент.

Nikita
04.12.2016
21:16:24
я тебе ща хак предложу)

Google
Котяй Негодяй
04.12.2016
21:16:39
Я знаю, о чём ты.

Функция-обработчик исключений.

И типизируй её как хочешь.

Nikita
04.12.2016
21:17:16
declare module 'fastjs' { declare function tryCatch(tryFn: Function, catchFn: (error: Error) => void): void; }

угу)

как-то так либа называется. да много их)

Котяй Негодяй
04.12.2016
21:17:51
Я итак хотел написать свой универсальный обработчик.

Vladimir
04.12.2016
21:18:03
оверхэд конечно

Котяй Негодяй
04.12.2016
21:18:09
Как-то всё к этому итак движется.

Nikita
04.12.2016
21:18:19
оверхэд конечно
неа. такое будет даже быстрее работать

Котяй Негодяй
04.12.2016
21:18:23
Ну, это для логов всяких и репортов.

Nikita
04.12.2016
21:18:43
потому что функция с try-catch не оптимизируется

а то что ты передашь в tryCatch - да

Котяй Негодяй
04.12.2016
21:18:57
Если кейс предусмотрен, то предусмотрено и действие. Если нет, то репорт куда надо.

Vladimir
04.12.2016
21:19:02
тем более это скоро будет не так

мне кажется замыкание дороже

Nikita
04.12.2016
21:20:09
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#2-unsupported-syntax

это не я придумал)

Google
Nikita
04.12.2016
21:20:55
Native try {} catch (e) {} vs fast.try() ✓ try...catch x 151,059 ops/sec ±2.21% (79 runs sampled) ✓ fast.try() x 3,159,725 ops/sec ±1.20% (90 runs sampled) Result: fast.js is 1991.72% faster than try...catch. Native try {} catch (e) {} vs fast.try() (single function call) ✓ try...catch x 149,164 ops/sec ±2.11% (78 runs sampled) ✓ fast.try() x 3,785,055 ops/sec ±1.34% (89 runs sampled) Result: fast.js is 2437.50% faster than try...catch.

https://github.com/codemix/fast.js/tree/master

Vladimir
04.12.2016
21:21:41
в генераторах это точно будет медленней

Nikita
04.12.2016
21:22:08
ну и у меня в бизнес-логике почти не разу не приходилось try-catch ставить. в драгн-дропе, вроде, единственное место

в генераторах это точно будет медленней
разговор о скорости без бенчмарков - ниочем

Vladimir
04.12.2016
21:23:00
не всегда

кроме ситуации когда в одном случае ты делаешь что то дорогое, в другом - нет

Nikita
04.12.2016
21:23:48
мм, не понял

Vladimir
04.12.2016
21:24:13
быстрее не аллоцировать замыкание чем аллоцировать - бенчмарки не нужны

Nikita
04.12.2016
21:24:32
быстрее оптимизированный код, чем неоптимизированный

Vladimir
04.12.2016
21:24:37
и кстати - бенчмарк паленый у этого фаста

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

Nikita
04.12.2016
21:25:16
вполне возможно, но генераторы - это же совсем иначе работающий код

там и try-catch по другому реализован, почти уверен

Vladimir
04.12.2016
21:25:48
У фаста как раз нет замыканий в бенчмарке

А на практике они будут почти всегда, причем по два или три за раз

Nikita
04.12.2016
21:29:12
норм?

ваще random не норм))

Vladimir
04.12.2016
21:30:08
Да уж

Nikita
04.12.2016
21:35:12
лол)

Google
Nikita
04.12.2016
21:35:14
неожиданно))

те быстрее в районе погрешности

Admin
ERROR: S client not available

Nikita
04.12.2016
21:36:52
вывод - делайте функции с try-catch небольшими и все будет ок

отправлю PR, наброшу))

Котяй Негодяй
04.12.2016
21:40:06
А что за шрифт? =)

Nikita
04.12.2016
21:40:22
Fira Code

des
05.12.2016
03:30:02
А как вам вообще TypeScript? Готов для продакшна? Стоит он того, чтобы его использовать для крупных проектов?

Алексей
05.12.2016
09:02:07
неожиданно))
Его выпиливали активно из RxJs - я про всякие fast-try-catch ( и в некоторых местах получили speed improvement используя обычный try-catch )

Oleksandr
05.12.2016
09:05:27
А как вам вообще TypeScript? Готов для продакшна? Стоит он того, чтобы его использовать для крупных проектов?
работает, не панацея, для некоторых стилей кодинга помогает отлично, для некоторых вообще пофиг

Dima
05.12.2016
09:59:54
Всем здрасьте! Решил поиграться с тайпскриптом на ноде и столкнулся с проблемой, что не все зависимости транспилятся. Как я думал - в конфиге указываю entrypoint и все зависимоти компилятся автоматически. На практике получается, что транспилится только один уровень вложенности. То есть есть server.ts - entrypoint, он имортит app/index.ts, который в свою очередь имортит dbClient.ts. В результате есть server.js, index.js, а dbClient.js уже нет. tsconfig.json { "compilerOptions": { "module": "commonjs", "target": "es6", "compileOnSave": true, "typeRoots": [ "node_modules/@types" ] }, "files": [ "server.ts", "app/**" ], "exclude": [ "node_modules" ] } запускаю процесс командой "ts:build": "tsc server.ts"

"app/**" добавлял уже для решения проблемы, как вы понимаете, не помогло ?

des
05.12.2016
11:22:23
Я VS Code юзал для js, а потом он у меня на второй день просто завис намертво. Я аж расстроился и перешел обратно на саблайм.

Как там, виснет всё ещё?

Саблайм куда стабильнее по-моему.

Дмитрий
05.12.2016
11:23:50
У меня был этот баг, но не встречал уже несколько месяцев

.
05.12.2016
11:37:30
Привет. Я тут установил typescript@next, но atom-typescript все равно жалуется на спреды. Это можно как-то пофиксить?

А, ему же все равно какой я в проект установил, лол

Прописал путь

Google
Vasiliy
05.12.2016
14:06:09
чет включаю allowJs и все рушится нафиг именно с rxjs беда [5:03] ERROR in /blah/node_modules/@reactivex/rxjs/dist/cjs/Rx.d.ts (130,26): error TS2306: File '/blah/node_modules/@reactivex/rxjs/dist/cjs/Operator.js' is not a module. ERROR in /blah/node_modules/@reactivex/rxjs/dist/cjs/Rx.d.ts (131,10): error TS2305: Module '"/blah/node_modules/@reactivex/rxjs/dist/cjs/Observer"' has no exported member 'Observer'. ... import * as Rx from "@reactivex/rxjs";

не помню видел или нет, либо конвенции/правила наименования всяких штук можно как-то в tslint.config определять

эм, а реально как-то настроить tslint с airbnb правилами? я нашел только вот этот странный гист https://gist.github.com/piotrwitek/f15ad4bf2297ac60d06581f188ee52ff typescript-eslint-parser у меня не завелся если у кого-то настроено максимально приближенно к eslint-config-airbnb, можете пошарить конфиг?

.
06.12.2016
12:27:57
Хай

function func(a: Array<Object>, b: Object, c: Array<Object>, d: number) {}

слишком длинный список аргументов получается, можно как-то лучше?

Anton
06.12.2016
12:29:24
Можешь написать Object[]

Можешь разносить по разным строкам

Можешь сделать один аргумент-объект, в котром будет a, b, c, d и вынести это в интерфейс

И еще куча вариантов

.
06.12.2016
12:30:37
Спс

Nikita
06.12.2016
14:22:45
@vkurchatkin я правильно понимаю, что $Shape тупо убирает у type required у всех пропертей?

Vladimir
06.12.2016
14:28:46
ну вроде этого, но я честно говоря точно не знаю

Nikita
06.12.2016
14:33:49
https://flowtype.org/try/#0C4TwDgpgBAwg9gOwGYEsDmUC8UDeAoKKJOOALigGdgAnFBNAGgKgCMBDa8hAVwFsWI1PAF8A3HjyhIUAEoQAjtxTUIAE3jJ0WXM2JlKNOmhHi8SbggDGwFIiiWVbYBA2o0ACjgA3QbVURyOUVlNVctAB8oABIAZQALNkgAHjC0AD4ASnJUnUIVYG5qBFzCIhJyb18UfwA6PSZS1g4Kn2o-CBr2IUIxESA

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