
Artur
07.08.2016
12:54:33
Мне повезло, у меня все завелось на @types.
Хотя там был некий косяк в react router, но всегда есть declaration merging.

Anatoly
08.08.2016
07:08:21
Ребят, какой самый лучший способ сгенерить документацию по проекту на ts ?

Алексей
08.08.2016
07:50:26
Присоединяюсь к вопросу

Google

Ostap
08.08.2016
07:52:02
+

Artur
08.08.2016
08:32:37
@chicoxyzzy ты вроде давал ссылку на проект для генерации доков для TS?

Дмитрий
08.08.2016
09:08:24
typedoc
Только его сайт сейчас лежит)

Алексей
08.08.2016
09:14:21
не видел ни 1 нормального решения на данный момент
утверждение что для TypeScript невозможно написать документацию - остаеться в силе

Roman
08.08.2016
09:25:55
ясно понятно

hlomzik
08.08.2016
21:56:01
Type '{ test: number; }' is not assignable to type '{ [s: string]: number; }'.
Index signature is missing in type '{ test: number; }’.
Это же определенно баг?
и вообще мне так не нравится такой синтаксис для дженериков обджекта...

Aleh
08.08.2016
21:58:19

hlomzik
08.08.2016
21:58:28
1.8.10

Aleh
08.08.2016
22:01:21
в 2 пофикшено вроде
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#implicit-index-signatures

Google

hlomzik
08.08.2016
22:10:27
на 2 уже можно спокойно переходить?
я тут еще один баг нашел
как можно локально две версии установить, кстати?
npm i typescript@2 ?
type TestPromise = Promise<Object>
abstract class Test {
abstract async fetchItems (): Promise<Object>
abstract async fetchItems2 (): TestPromise
}
Type 'TestPromise' is not a valid async function return type.
(method) Test.fetchItems2(): Promise<Object>

Дмитрий
09.08.2016
01:08:37

Dreamerinnoise
09.08.2016
05:42:01
А вы используете промисы из стандартной библиотеки или bluebird? Если последние, то почему?

hlomzik
09.08.2016
09:10:15
а почему бы не просто Object<string>?
хотя можно самому же определить тип в глобальном d.ts, хм

Aleh
09.08.2016
11:09:46
юзаем уже в двух проектах

hlomzik
09.08.2016
11:16:52

Aleh
09.08.2016
11:17:06
это да

Алексей
09.08.2016
11:18:08
Symbol ( тоже если память не изменяет ) может быть ключом

Dreamerinnoise
09.08.2016
11:19:04
Ребята
А вы используете промисы из стандартной библиотеки или bluebird? Если последние, то почему?
Я видел тут у кого-то были проблемы с тайпингами

hlomzik
09.08.2016
11:21:04

Aleh
09.08.2016
11:27:52
Ребята
я юзаю стандартные, их хватает)

Google

Roman
09.08.2016
11:29:09
Bluebird, потому что постоянно нужны map, all, дефолт обработка ошибок итд но не знаю как с тайпингами для него

Dmitry
09.08.2016
11:38:40
Bluebird реджектить может ещё
Вроде как
Я только лишь из-за этого хотел его попробовать поюзать
Но это очень редкие кейзы и я забил

Vasiliy
09.08.2016
12:33:41
реджектить в смысле они cancellable

hlomzik
09.08.2016
12:34:12
Не понимаю, кстати, как можно было фетч делать неотменяемым

Vasiliy
09.08.2016
12:35:21
да, тоже не понимаю почему

Aleh
09.08.2016
12:38:31
так отмена это ж просто игнорирование ответа

Vasiliy
09.08.2016
12:44:44
да,
т.е. можно что-то типа того сделать
(пример из https://medium.com/@matthiasak/state-of-the-union-js-d664bdbffd14#.x7nhwnduh)
const cancellable = f =>
(...args) => {
let result = f(...args),
aborted = false
let promise = new Promise((res,rej) => {
result.then(d => {
return aborted ? rej('aborted') : res(d)
}).catch(e => rej(e))
})
promise.abort = () => aborted = true
return promise }
blah = cancellable(fetch)

Ivan
09.08.2016
12:50:22
промис отменили, а fetch запрос так висеть и будет?

Vladimir
09.08.2016
13:03:55
промис нельзя отменить

pofigizm
09.08.2016
13:04:11
+ у blah().then() не будет метода .abort

Vladimir
09.08.2016
13:05:29
можно сделать CancellablePromise extends Promise в теории

hlomzik
09.08.2016
13:08:52

Aleh
09.08.2016
13:09:34

Vladimir
09.08.2016
13:10:09
ну http обычно так отменяют

hlomzik
09.08.2016
13:10:15

Google

Vladimir
09.08.2016
13:10:20
интересно, что xhr делает

Aleh
09.08.2016
13:10:56
ну, откровенно говоря, для большинства кому нужна отмена, реализация через закрытие сокета это приятно, но необязательно
достаточно заигнорить респонс)

hlomzik
09.08.2016
13:12:00
юзер кликнул на кнопку, запустились сто фетчей, а юзер взял и ушел на другую страницу, где нужна еще сотня фетчей, но они будут ждать, потому что первую сотню не отменить

Aleh
09.08.2016
13:12:14
очевидно надо не делать сотню фетчей
:)

Vladimir
09.08.2016
13:12:29
ну по таймауту все равно сокет закроется

hlomzik
09.08.2016
13:12:51

Aleh
09.08.2016
13:12:59
в браузерах ж гигантские таймауты, не?

Vladimir
09.08.2016
13:13:12
ммм, ну по умолчанию может быть

hlomzik
09.08.2016
13:13:12
и с аяком так и делали)

Aleh
09.08.2016
13:13:23

Vladimir
09.08.2016
13:13:30
по моему ограничение на количество сокетов тоже есть

hlomzik
09.08.2016
13:13:34
не в смысле сотню запросов, а отмену при ненадобности
4 или 8

Aleh
09.08.2016
13:14:22
ну это какая-то отстойная идея держать десятки параллельных запросов
потом фейсбук опять скажет, что http говно
нет, я не спорю, что вероятно где-то есть кейсы

Google

Aleh
09.08.2016
13:15:33
типа там биржи всякие, когда надо не только событие словить, но и проверить, что не говно прилетело или просто несколько источников, ноо
это не случай пользователь кликнул и пытается уйти)

hlomzik
09.08.2016
14:10:17
The left-hand side of a 'for...of' statement cannot use a type annotation
это вот еще почему? типа активное автоопределение?
только вот у меня там for (let scope of Object.values(scopes)), который дает any
ну т.е. я не понимаю запрета определения типа в for..in и for..of

Ярослав
09.08.2016
17:53:32
Через символ

Aleh
09.08.2016
18:29:15
попробовал remap-istanbul, чет он мало строчек показывает по итогу
в файле на 62 строки говорит, что у вас 4 строки

hlomzik
09.08.2016
18:40:15
У меня истанбул фигню какую-то по строкам показывал, но правильно указывал число проходов. Ориентировался по ним.

Aleh
09.08.2016
18:42:05
число проходов?

Ярослав
09.08.2016
18:42:36

hlomzik
09.08.2016
18:43:17