
Александр
22.05.2018
07:24:21

Aleksey
22.05.2018
07:25:35
но если очень хочется

Alex
22.05.2018
08:53:31
ребятб я научился писать на TypeScript. могу ли я теперь быть сверхчеловеком?

Google

Igor
22.05.2018
08:55:11
нет

Максим
22.05.2018
08:55:15

Igor
22.05.2018
08:55:18
ты не научился

Igor
22.05.2018
09:00:04

Sergey
22.05.2018
09:02:30

Andrew
22.05.2018
09:09:09

Sergey
22.05.2018
09:10:42
Моя резольвента твердеет

Aram
22.05.2018
09:12:56
Господа, кто-то сталкивался с TS4023?

Anton
22.05.2018
09:13:57
Надо экспортить типы, которые используеются в тех типах или значениях, которые ты экспортишь :)

Aram
22.05.2018
09:14:23
Я экспорту вообще все
То есть export * from...
Есть допустим модуль UI, у него в главном файле импортируются и экспортируются все модельки
import * as Models from './models'
export {Models}
Другой модуль пользуется этими модельками
import {Models} from 'ui'
export const getSome = (some: Models.Some) =>...
И вот тут на getSome идёт TS4023
Не могу понять где именно проблема

Google

Anton
22.05.2018
09:23:50
У тебя "другой модуль" экспортипрует getSome, которая использует Models.Some. Надо в этом модуле экспортить export {Models} тоже

Aleh
22.05.2018
09:24:28
Оо

Aram
22.05.2018
09:25:33

Anton
22.05.2018
09:26:39
Проблема именно в этом, 100%, и решается она экспортом используемых типов

Aram
22.05.2018
09:29:11
Проблема решается когда импортишь используемый тип напрямую, то есть через
import {Some} from 'ui/models/Some'
Но мне бы хотелось использовать главный файл модуля как фасад, поэтому такой вариант записи не желателен

Aleh
22.05.2018
09:30:20
если нет в issues, то стоит добавить

Aram
22.05.2018
09:33:53

Aleh
22.05.2018
09:35:36
https://www.typescriptlang.org/play/index.html#src=declare%20module%20%22a%22%20%7B%0D%0A%20%20%20%20export%20type%20Key%20%3D%20%22test%22%0D%0A%20%20%20%20export%20type%20S%20%3D%20%22test2%22%0D%0A%7D%0D%0A%0D%0Adeclare%20module%20%22b%22%20%7B%0D%0A%20%20%20%20import%20*%20as%20Models%20from%20%22a%22%0D%0A%20%20%20%20export%20%7B%20Models%20%7D%0D%0A%7D%0D%0A%0D%0Adeclare%20module%20%22c%22%20%7B%0D%0A%20%20%20%20import%20%7B%20Models%20%7D%20from%20%22b%22%0D%0A%20%20%20%20export%20const%20f%3A%20(key%3A%20Models.Key)%20%3D%3E%20string%0D%0A%7D
ну да, в playground не воспроизводится

Denis
22.05.2018
09:39:01
https://github.com/Microsoft/TypeScript/issues/13219
че думаете пацаны

Aleh
22.05.2018
09:39:38
не нужно

Denis
22.05.2018
09:39:53
почему

Sergey
22.05.2018
09:40:45
Что-то похоже на Checked Exceptions в Java или как они там
В джаве от этого выли

Denis
22.05.2018
09:40:58

Aleh
22.05.2018
09:41:07
эксепшены неявно пробрасываются через все уровни, поэтому ты не можешь ничего гарантировать
ну т.е. это еще хуже, чем просто типы в тс

Google

Aleh
22.05.2018
09:41:57
короче для такого лучше использовать Either например

Max
22.05.2018
09:43:13
в питоне работает ок

Aleh
22.05.2018
09:43:34

Denis
22.05.2018
09:43:58
хмм, я просто смотрю на это с точки зрения декларативности, чтобы повысить читаемость

Max
22.05.2018
09:44:42
?
try:
do_something()
catch MyException:
…
catch AnotherException:
…
catch Excepton: // broad
…

Sergey
22.05.2018
09:45:03
Это немного чёто не то
Это просто исключения, ну, как везде

Aleh
22.05.2018
09:45:32

Max
22.05.2018
09:45:36
эммм

Aleh
22.05.2018
09:45:51
вопрос про описание того, что функция может бросать

Sergey
22.05.2018
09:45:52
А чекед - потребитель ОБЯЗАН обработать бросаемые методом исключения, которые он объявил

Aleh
22.05.2018
09:45:56
а не про catch по типу

Max
22.05.2018
09:46:07
а, неправильно понял тогда

Sukhrob
22.05.2018
14:22:27

andretshurotshka?❄️кде
22.05.2018
14:23:45
лол
удачи

Sukhrob
22.05.2018
14:23:50

andretshurotshka?❄️кде
22.05.2018
14:26:25
Type '{ [Symbol.iterator](): IterableIterator<number>; }' is not an array type.

Sukhrob
22.05.2018
14:27:53

Google

andretshurotshka?❄️кде
22.05.2018
14:28:06
я даже спред не могу сделать

Sukhrob
22.05.2018
14:28:18
и мне нужно, чтобы была информация о типе элемента массива
я даже спред не могу сделать
у меня работает. Компилирует. И без ошибок выполняется. Мало того, этих примеров много в интернете (но не для тайпскрипта, а просто для JS)
я даже спред не могу сделать
странно, имитация моего класса не удалась.
А каким образом вот это тогда работает?
http://plnkr.co/edit/8BV20knte9zIjC1fIp7k?p=preview
А в тайпскрипте это уже не работает.

andretshurotshka?❄️кде
22.05.2018
14:37:02
тайпскрипт не умеет просто))

Admin
ERROR: S client not available

Sukhrob
22.05.2018
14:37:29

andretshurotshka?❄️кде
22.05.2018
14:37:37
ну нет))
тс может не понимать какой тип

Sukhrob
22.05.2018
14:37:57
тогда вопрос в типизации. Как правильно описать итератор для ... ?

Сергей
22.05.2018
14:38:14
тайпскрипт не умеет просто))

Sukhrob
22.05.2018
14:38:31

Сергей
22.05.2018
14:38:38
итераторы

andretshurotshka?❄️кде
22.05.2018
14:38:50
https://flow.org/try/#0GYVwdgxgLglg9mAVAAgOYFMzoE4EMroDK6AjiJhOgBQDOUu2UANMpgCYCUyA3gFDIDk-QQOBxsyKgBt0UZDGQBeZHQZQA3POQAeZe00wA1Ia58RIgJ4x0UtvPXCRAX0dDnr1zLk1S5SOiVkAG0AOjCMLDwCYjIKagAmJgBWDgBdB0EgA
в флоу норм
с другой стороны флоу не умеет символы

Sukhrob
22.05.2018
14:40:09
итераторы
у него уже есть Iterator, IterableIterator... и прочие.
теоретически может.
это мы не умеем... ладно, пошел дальше копать гуглить яндексить

Google

andretshurotshka?❄️кде
22.05.2018
14:41:37
хм
а какой таргет в плэйграунде?

Sukhrob
22.05.2018
14:43:55
а какой таргет в плэйграунде?
http://www.typescriptlang.org/play/index.html#src=class%20Manager%20%7B%0D%0A%20%20%20%20*%5BSymbol.iterator%5D()%3A%20IterableIterator%3Cnumber%3E%20%7B%0D%0A%09%09yield%201%3B%0D%0A%09%09yield%202%3B%0D%0A%09%09yield%203%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%0D%0Aconst%20manager1%20%3D%20new%20Manager%3B%0D%0A%0D%0Aconst%20numbers%20%3D%20%5B...manager1%5D%3B%0D%0A%0D%0A

andretshurotshka?❄️кде
22.05.2018
14:45:10

Sukhrob
22.05.2018
14:47:02

andretshurotshka?❄️кде
22.05.2018
14:47:25
"target": "es6"

Sukhrob
22.05.2018
14:47:36
что это? Как это заработало?

andretshurotshka?❄️кде
22.05.2018
14:47:45

Sukhrob
22.05.2018
14:47:59

andretshurotshka?❄️кде
22.05.2018
14:48:21
нигде)
это вскод

Sukhrob
22.05.2018
14:48:53
это вскод
у меня и стоит "target": "es6",
а вопрос в чем?
но элемент массива не определяет как number[]
а какая тут IDE работает?

andretshurotshka?❄️кде
22.05.2018
14:51:03
VSCode

Sukhrob
22.05.2018
14:51:08

andretshurotshka?❄️кде
22.05.2018
14:51:15
странно)

Sukhrob
22.05.2018
14:51:21
у меня IDEA вот это показывает... щаз гляну в vscode

andretshurotshka?❄️кде
22.05.2018
14:51:32
а версия тс?