
Vadim
20.09.2016
13:39:53
жаль

Vladimir
20.09.2016
13:41:04
Во flow есть

Aleh
20.09.2016
13:44:13
а пример кейса для такого?
а то я чет не придумал о.о

Google

Vadim
20.09.2016
13:44:55
Ну например есть широко используемая в проекте функция. Я хочу добавить в нее дженерик, но что б не переписывать все места ее использования

Aleh
20.09.2016
13:48:07
так а он автоматически не выводится?

Vadim
20.09.2016
13:48:17
В смысле?

Vladimir
20.09.2016
13:48:44
Сделай алиас

Aleh
20.09.2016
13:48:51
function f<T> (a: T): T { return a; }
f("123");
f(123);
f({});

Vadim
20.09.2016
13:49:47
Хотя я сейчас попробовал не указывать при вызове, и ошибок нет ) Думал будут )
Как быстро привести объект к определенному типу при помощи дженерика? Где-то я видел примеры, а теперь не могу найти.
Что то типа такого:
type Some = {}<T>;

Aleh
20.09.2016
14:11:44
const smthElse = smth as Smth

Vadim
20.09.2016
14:13:19
Я вспомнил что я видел:
const Some = <string>{};
Но странно что это не работает для создания типа:
type Some = <string>{};
Все-таки во многих моментах тайпскрипт выглядит не совсем интуитивным :/

Aleh
20.09.2016
14:15:37
а как это должно работать для создания типа
и синтаксис приведения через <> не надо использовать, вместо него есть as

Vadim
20.09.2016
14:16:02
ок )

Google

Aleh
20.09.2016
14:16:31
это тоже самое, что const smthElse = <Smth> smth;
const smthElse = smth as Smth

Ave
20.09.2016
14:18:40
а юзает кто-то immutable.js и flow?

Ҫѐҏӗѫӑ
20.09.2016
17:40:11
as появился исключительно чтобы не конфликтовать с jsx

Aleh
20.09.2016
17:40:26
все так

Ҫѐҏӗѫӑ
20.09.2016
17:40:28
так что можно юзать что хочется

Aleh
20.09.2016
17:40:55
ну, в доке написано именно, что as предпочтителен

Ҫѐҏӗѫӑ
20.09.2016
17:41:11
если писать без jsx, то пофиг
мне удобнее <> юзать если не реакт проект

Алексей
20.09.2016
17:41:34

Vladimir
20.09.2016
17:42:23

Алексей
20.09.2016
17:46:59

Vadim
20.09.2016
18:23:41
Вопрос:
Циклом перебираются какие-то стринги. Внутри цикла идет такое обращение:
this[fieldName](5555)
компилятор ругается на эту конструкцию
Index signature of object type implicitly has an 'any' type.
Как это типизировать?

Mike
20.09.2016
18:41:55
http://stackoverflow.com/questions/13315131/enforcing-the-type-of-the-indexed-members-of-a-typescript-object
Или <any>this[name]

Alex
20.09.2016
18:44:03
(<any>this)[name]

Vadim
20.09.2016
18:45:22
Ура!!! )
Спасибо!
Вопрос:
У меня используется сторонняя библиотека, и соответственно тайпинги для нее. Я хочу расширить эту библиотеку, добавив к ней метод.
Как мне расширить сторонние тайпинги?

Google

Vadim
21.09.2016
16:29:33
Я должен удалить официальный файл тайпингов, и создать вместо него свой? Или как?

Roman
21.09.2016
16:41:35
добавь свой тайпинг дополнительно
typescript позволяет расширять интерфейсы
речь про TS ?

Vadim
21.09.2016
16:42:09
Да
Будет ругаться что дублирую название пакета

Roman
21.09.2016
16:42:23
не должен

Vadim
21.09.2016
16:42:46
Попробую. Просто когда-то пытался так расширить, и не получилось

Roman
21.09.2016
16:43:22
Вот я расширял lodash, почему то в тайпингах не хватает одного метода: declare module _ {
interface LoDashExplicitArrayWrapper<T> {
values() : LoDashExplicitArrayWrapper<T>;
}
}

Aleh
21.09.2016
16:43:28
да, просто фигачишь еще один declare module
https://www.typescriptlang.org/docs/handbook/declaration-merging.html

Vadim
21.09.2016
16:43:44
Ок, спасибо! Попробую

Ҫѐҏӗѫӑ
22.09.2016
16:06:14
https://twitter.com/typescriptlang/status/778988510363672576

Yuri
22.09.2016
16:07:32
хотел сказать
> о, можно учить сразу по новым докам
но хуй там они обновили сайт

Aleh
22.09.2016
16:08:43
https://github.com/Microsoft/TypeScript/issues/5453#issuecomment-248383544
…

Ҫѐҏӗѫӑ
22.09.2016
16:09:12
ой
не та ссыль

Google

Ҫѐҏӗѫӑ
22.09.2016
16:13:20
https://github.com/Microsoft/TypeScript-Handbook/tree/release-2.0

Aleh
22.09.2016
16:31:16
ура, play апдейтнули

Vladimir
22.09.2016
16:32:12
наконец то, можно будет кидать примеры говна и в ts 2

Aleh
22.09.2016
16:32:27
)

Sergey
22.09.2016
16:38:17

Vladimir
22.09.2016
16:39:14
https://www.typescriptlang.org/play/index.html#src=type%20Foo%20%3D%20%7B%20type%3A%20'foo'%20%2C%20foo%3A%20string%20%7D%3B%0D%0A%0D%0Aconst%20foo1%20%3D%20%7B%20type%3A%20'foo'%2C%20foo%3A%20''%20%7D%3B%0D%0Aconst%20foo2%3A%20Foo%20%3D%20foo1%3B%0D%0A%0D%0A
Wut

Vadim
22.09.2016
18:09:33
Люди, такой вопрос:
Как мне указать что такое-то поле интерфейса является классом? Не экземпляром класса, а классом?
Пример:
Если я пишу так, то компилятор думает что поле Field это экземпляр класса
class Form {
static Field: Field;
}
Можно еще писать так, и это работает:
class Form {
static Field: (new() => Field);
}
Но это выглядит как-то громоздко и криво

Admin
ERROR: S client not available

Vadim
22.09.2016
18:12:02
Неужели это едитственный способ указать что поле является классом?

Ҫѐҏӗѫӑ
22.09.2016
18:16:00
Wut
ну типа foo1 у тебя не обязательно имеет тип Foo
я смогу с этим жить
и указать у foo1 тип Foo эксплицитно
зато импорты не any подефолту
подход когда “все, что не типизировано — говно” лучше чем, “все, что я сам типизировал — крутое, а остальное ¯\_(ツ)_/¯“

Vladimir
22.09.2016
18:20:49
Да это херня, согласен
Просто слабый inference
Не самая большая проблема

Google

Vadim
22.09.2016
18:27:59
Самое интересное, что по моему вопросу я вообще в гугле не нахожу обсуждений. Хотя казалось бы не такой уж и редкий случай - создание поля в виде класса :/
Хотя нет, нашел кое-что об этом. Раз уж присутствующие не слышали о том как это указывать, то может кому пригодится.
http://stackoverflow.com/questions/12802317/passing-class-as-parameter-causes-is-not-newable-error
Выходит что в любом случае класс нужно описывать как MyClass: new (name: string) => MyClass
Удивительно громоздко и неизящно выглядит )

Aleh
22.09.2016
18:47:38
typeof

Vadim
22.09.2016
18:48:14
Спасибо большое! ))
Как раз в эту минуту писал что методом тыка дошел до него сейчас )
Странно что в документации о нем в этом применении ничего не говорится
А вот как указать что аргументом функции может быть ЛЮБОЙ класс, а не какой-то конкретный?
Ну или любой, унаследованный от такого-то?
Пока нашел только такой метод:
(new() => any)
А более изящного, типа как typeof не существует?

Denis
23.09.2016
00:10:01
https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/

Ҫѐҏӗѫӑ
23.09.2016
00:46:40
:)
удивил так удивил

Ave
23.09.2016
00:48:40
на чем там написан typescript?

Ҫѐҏӗѫӑ
23.09.2016
00:48:52
на тайпскрипте?

Ave
23.09.2016
00:49:27
зашквар конечно :(
вот как так жить

Ҫѐҏӗѫӑ
23.09.2016
00:49:40
хуево что не на хаскеле да(
то ли дело элм!

Ave
23.09.2016
00:50:03
то ли дело java!

Ҫѐҏӗѫӑ
23.09.2016
00:50:30
таки в чом броблема?
ви ни можити вибрать транспилер?