@typescript_ru

Страница 40 из 669
hlomzik
09.08.2016
20:07:06
если у нас класс с 2 полями string и 1 number, то вполне логично на values кидать [string, string, number]
ну нет, итератор не гарантирует порядка, насколько помню

Aleh
09.08.2016
20:07:46
а, тогда будут конструкции хитрее с union тип string|number везде

Vladimir
09.08.2016
20:07:57
и это будет неправильно

так как в объекте могут быть и другие поля

Google
hlomzik
09.08.2016
20:09:11
пффффффф An index signature parameter type must be ‘string’ or ‘number’

даже Symbol нельзя

Aleh
09.08.2016
20:10:29
так как в объекте могут быть и другие поля
нуу, у него может этих полей и не быть, но это все через обман компилятора

Vladimir
09.08.2016
20:10:55
да нет, легально вполне

Aleh
09.08.2016
20:11:10
ах, точно

чет забыл про это

Vladimir
09.08.2016
20:11:28
в репе flow недавно обсуждали эту теме

для того, чтобы values работало для объектов, нужны exact типы

Artur
10.08.2016
07:32:09
Разработчики TS странные. Вроде же MS любят ООП и TS прямо скажем - наделен многими хорошими фишками. Уже сколько тем с просьбой добавить поддержку позднего статического связывания (причем в JS это все прекрасно работает), а воз и ныне там https://github.com/Microsoft/TypeScript/issues/5863

Aleh
10.08.2016
08:51:47
а почему просто не добавить новое ключевое слово в типе, аля static или self?

Artur
10.08.2016
09:19:30
Ну я там писал на счет static. Но как-то проигнорили.

Вообще давно по этой теме пишут, там есть еще схожие темы и дубликатов пара десятков.

andretshurotshka?❄️кде
10.08.2016
09:24:20
а typescript может тип вывести тут? interface MyType1 { type: number } interface MyType2 { test: string } function isType1 (x): x is MyType1 { return !!x.type && typeof x.type === 'number' } function isType2 (x): x is MyType2 { return !!x.test && typeof x.test === 'string' } let x = getType1OrType2() switch (true) { case isType1(x): console.log('x is MyType1') break; case isType2(x): console.log('x is MyType2') break; default: console.log('Unknown type') }

Google
Artur
10.08.2016
09:50:26
Нет, но это можно сделать при помощи декораторов и Reflect Metadata.

Правда они эксперементальные и тип внутренние типы (interface, type) попадают в метадату в виде Object.

Так что, наверное, можно сказать, что нельзя.

А зачем это тебе?

Если очень хочется, то можно завернуть объекты в типизированные классы и уже имя конструктора с них брать.

Artur
10.08.2016
10:31:25
Точно

Если только пуллреквест запилить и спеку По изменениям...

И то

andretshurotshka?❄️кде
10.08.2016
16:18:37
а у вас @types/node работает?

а то мне tsc выдает src/cli/test.ts(1,1): error TS2304: Cannot find name 'process'.

Artur
10.08.2016
18:53:31
Да, по крайней мере какая-та из версий

6.0 чего-то там

А еще убедись, что у тебя ts 2

А то есть ощущение что у тебя не загрузил компилятор пакеты с декларациями

andretshurotshka?❄️кде
11.08.2016
05:08:03
А еще убедись, что у тебя ts 2
упс, пользовался глобальным tsc, а не из devDep ?

Artur
11.08.2016
06:02:04
Бывает

Anatoly
11.08.2016
11:02:29
namespace или module ? или это холиварный вопрос?

Aleh
11.08.2016
11:03:50
Для чего?

Anatoly
11.08.2016
11:04:55
Для организации кода, а для чего еще варианты?

Google
Vasiliy
11.08.2016
11:05:58
не в тему: proposal про cancelable промисы: https://github.com/domenic/cancelable-promise (помню вчера была тема про них) и ишью про abort фетча: https://github.com/whatwg/fetch/issues/27

Vladimir
11.08.2016
11:19:40
но даже в этом пропазале нельзя отменять промисы

Aleh
11.08.2016
11:22:05
Для организации кода, а для чего еще варианты?
ну, они ж друг другу несильно противоречат, модули подключаются через import, в модуле может быть неймспейс и его можно импортировать.экспортировать из модуля

@vkurchatkin вопрос по flow: для меня очень серьезный плюс ts это тулзы, которые с ним идут(tsserver), там семантический complete для кода, рефакторинг(rename, import)

а что есть подобное с flow?

Vladimir
11.08.2016
11:25:15
рефакторинга нет (пока, во всяком случае). все остальное встроено во flow

т е flow это уже сервер и клиент

самая лучше интеграция из IDE - nuclide

Там есть автокомплит, наивгация, подсветка типов при ховере и подсветка uncovered выражений, т. е. небезопасных мест, где есть any

Aleh
11.08.2016
11:27:33
ага, но это не зашито в nuclide, а просто провайдер к серверу flow, так?

Vladimir
11.08.2016
11:27:48
да, nuclide запускает сервер flow

Aleh
11.08.2016
11:28:08
а можешь линк кинуть на доку?

Vladimir
11.08.2016
11:28:35
какую именно?

Aleh
11.08.2016
11:29:30
ну, по серверу

flow

Vladimir
11.08.2016
11:49:17
я думаю flow --help это лучшее, что есть)

Artur
15.08.2016
09:03:06
Прикольную штуку нашел t.ok(result instanceof Cursor, 'a.foo() should return Promise<Cursor>') src/collection.spec.ts(11,9): error TS2349: Cannot invoke an expression whose type lacks a call signature.

Если в конце ; поставить, то все ок t.ok(...);

Ярослав
15.08.2016
12:08:16
может у тебя следом скобочки идут?

Artur
15.08.2016
12:13:27
Google
Ярослав
15.08.2016
12:14:41
не?

просто интересно почему так может быть

Artur
15.08.2016
12:19:39
не?
Именно скобки, все правильно. Там выражение с await внутри скобок было

Ярослав
15.08.2016
12:20:19
хорошо ))

Artur
15.08.2016
12:20:48
Причем, идешка предательски молчала

Ҫѐҏӗѫӑ
15.08.2016
19:13:22
https://github.com/Microsoft/TypeScript/pull/10347

andretshurotshka?❄️кде
16.08.2016
18:48:36
что использовать для test coverage для typescript?

Viacheslav
16.08.2016
19:29:20
Istanbul

Aleh
16.08.2016
19:31:10
на одном проекте покрываем es6 через истанбул, на другом балуюсь с remap-istanbul

https://twitter.com/_joshburgess/status/765655983402221568

Alexey
17.08.2016
10:35:17
кстати насчет Istanbul, я не сильно копался, попробовал с karma все быстро завелось но почему-то в отчет не попадают файлы на которые тестов вообще нет. Есть допустим два компонента foo.ts, bar.ts и наприер пока что есть тесты только на первый (foo.spec.ts). В итоге запускаем тесты в отчете видим foo.ts (98%) например и все

про bar.ts вообще инфы нет

логично было бы получить foo.ts - 98%, bar.ts - 0%

Aleh
17.08.2016
10:36:21
Ну так истанбул гоняет только запускаемый кол

Кол*

Код * -_-

Vladimir
17.08.2016
10:36:38
include-all-sources: true

Aleh
17.08.2016
10:37:23
Я карму не юзаю, но как она отличает сорс от не сорса?

Vladimir
17.08.2016
10:37:36
это в стамбуле

Alexey
17.08.2016
10:38:05
о, cпасибо

Google
Alexey
17.08.2016
10:38:12
сейчас попробую include-all-sources: true

Aleh
17.08.2016
10:38:22
Ну оно ж просто потянет все из папки

Vladimir
17.08.2016
10:38:37
ну так

Aleh
17.08.2016
10:38:42
Ну в принципе для большинства нор м

Vladimir
17.08.2016
10:39:15
либо можно написать фейковый тест, которые импортирует все файлы

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