@typescript_ru

Страница 48 из 669
Nikita
22.08.2016
14:23:20
?

Artur
22.08.2016
14:23:43
а вот нельзя. У меня ts орет, что Module build failed: Error: Typescript emitted no output for <module-entry-point>
Я вот честно не пробовал, поэтому не в курсе. От ts-loader'ов отказался, т.к. там какие-то ошибки не всегда адекватные сыпались.

Поэтому у меня сначала транспилит TS, потом вебпак.

По цепочке изменения хватают.

Google
Nikita
22.08.2016
14:24:12
ужас

я пока только минусы вижу от тс

Artur
22.08.2016
14:32:19
Это минусы нового развивающегося стека

К сожалению мы тут в JS последнее время слишком размахнулись с новыми фичами и не успеваем все освоить или сделать стабильным и удобным. Поэтому, наверное, так важно свой вклад вносить в сообщество.

Ҫѐҏӗѫӑ
22.08.2016
14:39:38
а только nuclide умеет покрытие типами показывать?

или из консоли / в vscode/ webstorm тоже можно?

я про flow сейчас

нам бы старый проект покрыть

Viacheslav
22.08.2016
20:35:09
или из консоли / в vscode/ webstorm тоже можно?
из консоли точно можно узнать процент и метаданные

Vladimir
22.08.2016
20:35:28
flow coverage

Ҫѐҏӗѫӑ
22.08.2016
20:36:08
ок, спс

Vladimir
22.08.2016
20:36:16
Небольшой хэлпер: https://github.com/sim-sys/ss-commons/blob/master/tools/flow-coverage.js

где-то на гитзабе есть что-то более цивильное

Google
Vitaly
23.08.2016
04:11:47
Всем привет! Кто-то использует flow в разработке? Чем лучше/хуже typescript’а?

andretshurotshka?❄️кде
23.08.2016
04:25:13
а вы как тесты запускаете? ts-node или компилируете?

Vladimir
23.08.2016
05:21:03
Всем привет! Кто-то использует flow в разработке? Чем лучше/хуже typescript’а?
Я. Лучше находит ошибки, более строгие типы, больше функционала для выражения типов

Хуже - меньше информации, тайпингов

Dreamerinnoise
23.08.2016
07:31:03
Кто-нибудь в vscode сталкивался с проблемой eslint? File ignored because a matching ignore pattern. Use "--no-ignore" to overrride у меня нет файла с игнор правилами

Alex
23.08.2016
08:34:28
а вы как тесты запускаете? ts-node или компилируете?
вот уж для тестов точно ts-node надо)

для приложения еще можно предположить что она на сервере типа будет лучше запускаться сбилженное, поэтому компилить

а можно и там ts-node)

в продакшене

Aleh
23.08.2016
08:37:25
у нас в общем-то два варианта запуска, первый - с собственными require-hook(ts -> babel), а второй через компилирование всего, а потом запуск. Когда разрабатываешь и работаешь над одним тестом быстрее запустить с hook, на ci быстрее закомпилить все, а потом запустить

Nikita
23.08.2016
09:48:48
как в flow сделать nullable тип?

Vladimir
23.08.2016
09:49:23
?Type

или Type | null

или Type | null | void

Nikita
23.08.2016
09:49:49
export interface AuthResult { step: string, error?: { tag: string, message: string, canTryAgain: boolean } }

вот такой тип

с TS на flow решил попробовать

src/types.js:8 8: error?: { ^ object type. This type is incompatible with 12: error: null ^^^^ null. See: src/utils/castAuthResult.js:12

вот так ругается

Google
Vladimir
23.08.2016
09:50:23
opt?: - это не обязательное свойство, но если оно есть, то тип не nullable

нужно либо error: ?{

либо error?: ?{

Nikita
23.08.2016
09:51:13
а почему null | {} не работает?

Vladimir
23.08.2016
09:51:31
можно и так. ? допускает undefined

Nikita
23.08.2016
09:52:05
export interface AuthResultError { tag: string, message: string, canTryAgain: boolean } export interface AuthResult { step: string, error: AuthResultError | null }

вот так не работает, а как надо?

Vladimir
23.08.2016
09:53:06
а какой код не работает?

Nikita
23.08.2016
09:53:50
пишет, что нельзя объект и null

src/types.js:14 14: error: AuthResultError | null ^^^^^^^^^^^^^^^ AuthResultError. This type is incompatible with 12: error: null ^^^^ null. See: src/utils/castAuthResult.js:12

Vladimir
23.08.2016
09:55:07
хм, странно!

используй вместо interface type X = {}

interface не особо документированная вещь

Nikita
23.08.2016
09:55:55
хм, ща попробую

еще вопрос. Вот у меня в проекте есть куча разных типов

причем которые расшарены между друг другом. Ну User например. Куда это все сложить, чтобы каждый раз не импортировать

Vladimir
23.08.2016
09:57:58
хм, никогда так не делал

думаю если в lib положить, то так будет работать

в flowconfig есть секция [libs]

там указываешь папки/файлы с либами

Google
Vladimir
23.08.2016
09:59:10
по идее типы в этих файлах глобальны

Nikita
23.08.2016
09:59:30
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBLAdgFwKYBOUAhgMZ5gCCArjgBYBKeAztTDgKIEFwFgDeqMGBzEA5gC4wzHAWxiANELABbFs3F4pMuVkXLSxLABUCAT0pji2KQCM4cGHiOoAvumz4iZCjXpNWdgFlGTwAB21ZeSVhQh4CKT9GFjZObl4wAB8wLDYYN3QoaixSHAw4LBEWHAAKAEowRNpkwJxg4QI8HGoCSsFhYVCIsAByAEYAJgBmEZiBuN4pXJh84VcAbjcgA

вот воспроизвел

Vladimir
23.08.2016
10:00:02
это либо баг либо фича интрфейсов

https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgCCArhgBYBKeAzsTBgKIBOTcTYAvGAN6phgYAhgHMAXGGoYmASwB2wgDR8wAWxrURecZJnyl-AMaDZAFSZZCwwXPEAjOHBh5jqAL7ps+IqUo06GTh5lSTwcbSk5RWU8FjZxEnIqWnpmVnYAHzBZOhg3dChiWQMMaThZARoMAAoASjB4nyT-IP4mPAxiJnLefn4QsLAAcgBGACYAZkH9Xpi08WyYXP5XAG43IA

вот так более канонично

https://github.com/facebook/flow/issues/2167

Nikita
23.08.2016
10:01:46
хм, никогда так не делал
то есть вот у тебя 20 экшн криэйторов, например и каждому нужен тип юзера, каждый раз импортируешь его?

Vladimir
23.08.2016
10:02:24
ага. ну логика та же что и вообще при использовании модулей

и не использовании global

Nikita
23.08.2016
10:04:38
нууу ок)

а какая разница между {foo?: bar} и {foo: ?bar}?

Vladimir
23.08.2016
10:05:44
в первое можно передать {}, но нельзя { foo: null }, во второе наоборот

можно и так сделать { foo?: ?bar }

Nikita
23.08.2016
10:08:17
и еще вопрос. Как заставить игнорить модули без типов?

то есть я его импортирую и хочу чтобы это было any?

Vladimir
23.08.2016
10:08:43
оно так само и работает

Nikita
23.08.2016
10:09:22
неа, я добавляю в игнор этот модуль, оно пишет, что не нашлось

Vladimir
23.08.2016
10:09:43
да, в игноре не должен быть

Nikita
23.08.2016
10:10:00
хм, но он его пытается прочекать

Google
Nikita
23.08.2016
10:10:14
а там скомпиленный бинарник на 2метра, я не хочу чтобы его проверяли)

Ҫѐҏӗѫӑ
23.08.2016
10:10:23
ну он должен чекать и там будет any подефолту

Vladimir
23.08.2016
10:10:34
ну эт да, он его как минимум читает и парсит

но он это сделает один раз

Ҫѐҏӗѫӑ
23.08.2016
10:10:59
flow нужен noImplicitAny

Nikita
23.08.2016
10:11:06
так мне вот не надо чтобы читал и парсил

Ҫѐҏӗѫӑ
23.08.2016
10:11:10
и транспайлер

Nikita
23.08.2016
10:11:17
а можно как-то import foo : any from 'foo';?

Ҫѐҏӗѫӑ
23.08.2016
10:11:59
и репо с дефинишнами

вот эти три условия и я свалю с TS

Nikita
23.08.2016
10:12:27
зачем flow транспайлер?

Ҫѐҏӗѫӑ
23.08.2016
10:12:32
чтобы был

Nikita
23.08.2016
10:12:36
мне нравится в flow что его можно включить, а можно не включать

Ҫѐҏӗѫӑ
23.08.2016
10:12:40
он там есть и так

Nikita
23.08.2016
10:12:44
но он у меня почему-то работает в любом случае

Ҫѐҏӗѫӑ
23.08.2016
10:12:44
но он кастрированный

Nikita
23.08.2016
10:13:08
который типы свои выпиливает?

Ҫѐҏӗѫӑ
23.08.2016
10:13:11
да

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