
andretshurotshka?❄️кде
20.11.2017
17:04:20
ето точно не про флоу)

Aldar
20.11.2017
18:47:21
Привет, вот у меня есть объект
var obj = {
"string": {
item: "string"
},
"string2": {
item: "string"
}
}
Передаю obj["string"].item в функцию которая принимает string - компилятор ругается, как побороть?

andretshurotshka?❄️кде
20.11.2017
18:49:40
какая ошибка

Aldar
20.11.2017
18:50:22
error TS7017: Element implicitly has an 'any' type because type '{ "Talk with Amanda": { item: string; }; "Sign up": { item: string; }; }' has no index signature.

Google

Ҫѐҏӗѫӑ
20.11.2017
18:50:26
лучше сразу в плейграунде

Vasiliy
20.11.2017
18:51:07
http://www.typescriptlang.org/play/

Aldar
20.11.2017
18:57:40
хм, в плейграунде все ок
https://stackoverflow.com/questions/32968332/how-do-i-prevent-the-error-index-signature-of-object-type-implicitly-has-an-an

Friedrich
21.11.2017
04:21:58
Ну, это теперь так в стандарте написано. Смирись :)

Moe
21.11.2017
04:24:26
Гайз, хочется посмотреть курсик Владилена Минина по TS. Где можно найти полную версию?

Alex
21.11.2017
04:49:11
Камрады, а почему в тайпскрипте сигнатура функции с арностью больше двух требует названия аргументов, и на что эти имена влияют?
Например:
почему вот так - нельзя:
let myFunc: (number, string) => string
а вот так - можно:
let myFunc: (n: number, s: string) => string

andretshurotshka?❄️кде
21.11.2017
07:17:21

John
21.11.2017
07:18:28
тайпскрипту нужно разруливать ситуации в которых можно писать и без типизации, я думаю для разделения этих случаев.

Alex
21.11.2017
07:52:31
А для функций-то ему какая разница?
Передавать-то по имени ведь нельзя?

andretshurotshka?❄️кде
21.11.2017
07:57:51
ну документация же!)

John
21.11.2017
08:04:33
const func = (a, b): c => a.getC(b)
const func = (first: a, second: b): c => first.getC(second)
ну я имел в виду что если у тебя а и b, к примеру, типы (и это не ключевые слова, как в твоем примере) - то нельзя однозначно определить, аргументы это описаны, или типы аргументов. ведь JS файлы так же должны быть валидным TS кодом по определению.
хотя, если писать
const f: (a, b) => c = (arg0, arg1): c => arg0.getC(art1)
то по идее должно быть норм...

Google

John
21.11.2017
08:07:26
но я не транспайлер тайпскрипта

andretshurotshka?❄️кде
21.11.2017
08:07:44
это только про типы речь
const func: ({ getC: (string) => any }, string) => any = (a, b) => a.getC(b)

John
21.11.2017
08:10:19
я с ходу не вижу проблем в такой записи, но вот тс ругается, не понимает ее. значит есть какие-то ограничения и неоднозначность
в интерпретации такой записи

andretshurotshka?❄️кде
21.11.2017
08:10:40
нету)
в флоу все норм

Aleh
21.11.2017
08:16:10

John
21.11.2017
08:25:34
немного почитал трэд на гитхабе по этой теме,

Aleh
21.11.2017
08:26:27

Сергей
21.11.2017
08:28:14
https://medium.com/@jdolle/babel-7-beta-instructions-aed5cf17048b

John
21.11.2017
08:29:09
на данный момент будет конфликт,
const f: (a, b) => any = (a: any, b: any): any => a
const f: (a, b) => any = (arg0: a, arg1: b): any => arg0
https://github.com/Microsoft/TypeScript/issues/14173
ну чувак пишет в самом конце что изначально был заложен untyped function type. и теперь уже без нарушения обратной совместимости не внедрить такую фичу.

andretshurotshka?❄️кде
21.11.2017
08:38:24
UntypeScript)


Petr
21.11.2017
08:47:11
Вопрос: возьмём какую-нибудь популярную библиотеку (jQuery, lodash), установим её тайпинги (npm install @types/jquery @types/lodash), затем откроем helloworld.ts и начнём писать с использованием символа $ или _ - типы подхватываются компилятором, НЕ требуется никаких дополнительных телодвижений типа import * as $ from "jquery" или import * as _ from "lodash". Теперь я встаю на место автора некоей библиотеки (изначально пишу на TypeScript), хочу сгенерировать такие тайпинги, чтобы они подхватывались глобально как в примере с jquery и lodash. Как? Опция компилятора "declaration": true генерирует кучу мелких d.ts, но даже если я вручную положу их в node_modules/@types/mylib - ничего не подхватывается. Есть ещё утилита https://github.com/TypeStrong/dts-bundle которая склеивает мелкие .d.ts и оборачивает в declare module "имя_мелкого_файла_модуля" {...}, но глобально потом всё равно не могу использовать свою mylib по аналогии как это получается с jquery и lodash.


Aleh
21.11.2017
08:48:49


Petr
21.11.2017
08:50:15

Aleh
21.11.2017
08:51:26


Petr
21.11.2017
08:51:48
более того, допустим я согласился рядом вручную добавить declare const ml: MyLib;
здесь MyLib должен быть интерфейсом или типом. Но в тех тайпингах, что генерируются с помощью "declaration": true или TypeStrong/dts-bundle нет никакх интерфейсов! Там есть declare module "mylib" { внутри много экспортов разных функций }

Google

Petr
21.11.2017
08:55:50
я бы с удовольствием изучил тайпинги и скрипты их генерации у какой-ниубдь библиотеки написанной на TypeScript, которые сразу доступны глобально в виде переменной (по аналогии как это работает с jquery или lodash). Кто знает такие репозитории на github?

Kirill
21.11.2017
09:53:07
Пацаны, а можно сделать вот такой тип?
Есть
interface s {
s1: type1[];
s2: type2[];
s3: type3[];
}
Мне нужно получить тип который обходит по всем ключам интерфейса и делает юнион (|)
В итоге конечный тип type t = type1[] | type2[] | type3[]

Aleh
21.11.2017
09:53:53

andretshurotshka?❄️кде
21.11.2017
09:55:45

Kirill
21.11.2017
09:57:38
Стандартного нет такого в тс?

andretshurotshka?❄️кде
21.11.2017
09:58:14
вроде нет

Сергей
21.11.2017
13:17:35
эт спамер
иль бот

Aleh
21.11.2017
13:17:51
или ts разработчик!

Ҫѐҏӗѫӑ
21.11.2017
13:19:26
может даже хацкелъ

Сергей
21.11.2017
13:19:34
в описание гляньте

Morsik
21.11.2017
13:19:42
>...чет скучно..пишите в WhatsApp +79685423056 ? и развеселите
идрис, определенно

Ҫѐҏӗѫӑ
21.11.2017
13:19:48
кок!

Aleh
21.11.2017
13:20:09
coq для лохов, которым не скучно

Alex
21.11.2017
13:22:17
Ну логика то вполне понятна. Многие думают, что у IT'шников много денег, но мало секса

Ҫѐҏӗѫӑ
21.11.2017
13:27:33
а на самом деле все наоборот

Eugene
21.11.2017
16:59:09

Admin
ERROR: S client not available

Eugene
21.11.2017
17:02:02

Google

Ghost
21.11.2017
18:01:10
Привет всем! Не могли бы подкинуть уроков/видео о TypeScript?

Moe
21.11.2017
18:20:46
гайз, я ленивый - что означает значок вопроса?
interface Iterator<T> {
next(value?: any): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}

Mike
21.11.2017
18:21:34
необязательное полу
На итераторе обязан быть некст, который модет принимпть параметр а может и нет. И может иметь коллбек видимо на рreturn и throw а может не иметь, и параметр в них тоже не обязателен

Moe
21.11.2017
18:23:29
именно - поле? не параметр value, а само поле целиком, получается )

Mike
21.11.2017
18:25:10
смотри у next нет вопросика
значит next существует обязательно. Но параметр уже с вопросиком - не обязателен

Moe
21.11.2017
18:25:40

Mike
21.11.2017
18:25:55
а у throw и return есть вопросик
нутыпонел

Moe
21.11.2017
18:26:09
теперь все понял - благодарю ))

Mike
21.11.2017
18:26:51
ваще странный итератор, это откуда такой?
хотя что-то в нём есть

Moe
21.11.2017
18:27:19

Mike
21.11.2017
18:27:27
а

Moe
21.11.2017
18:27:51
версия старая?

Mike
21.11.2017
18:28:13
не просто забыл что их туда впилили, не пользуюсь
у меня свои итераторы для списков и деревьев, со счётчиком ссылок и пулингом

andretshurotshka?❄️кде
21.11.2017
18:29:34
лол

Google

Moe
21.11.2017
18:32:12
еще такой вопросик
смотрю курсик с Udemy по TS
автор показывает настройки компилятора и использование noEmitOnError
я в своем учебном проектике сгенерировал tsconfig.json через tsc --init, но что-то такой опции noEmitOnError не нахожу там, даже закомиченой (
?

Mike
21.11.2017
18:32:50
любые опции отсюда работают в tsconfig https://www.typescriptlang.org/docs/handbook/compiler-options.html
я старый самолёт, пишу конфиги сам

Ghost
21.11.2017
18:33:45
Как указать компилятору, где искать тайпинги?

Moe
21.11.2017
18:34:54