
hlomzik
09.08.2016
20:07:06

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.
Так что, наверное, можно сказать, что нельзя.
А зачем это тебе?
Если очень хочется, то можно завернуть объекты в типизированные классы и уже имя конструктора с них брать.

Dreamerinnoise
10.08.2016
09:54:07

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

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
@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
либо можно написать фейковый тест, которые импортирует все файлы