@typescript_ru

Страница 262 из 669
Aleh
29.06.2017
07:35:59
А, namespace еще

Дмитрий
29.06.2017
07:38:31
Декораторы

С другим принципом и более широким спектром вариантов)

Aleh
29.06.2017
07:38:56
Декораторы из es

Google
Aleh
29.06.2017
07:39:10
Тип нахер тащить текущие

Дмитрий
29.06.2017
07:39:22
Аа, ну да, логично

Mike
29.06.2017
07:41:15
Методы енумерабильны в es5 таргете

Aleh
29.06.2017
07:41:28
Это баг или фича?))

Mike
29.06.2017
07:41:37
Особенность

В es6 не энумерабильны

Aleh
29.06.2017
07:42:18
Ну я думаю, что это не будут делать в плагине бабеля

Mike
29.06.2017
07:42:30
С for in по объекту тривиально написать код который в es5 и es6 таргете работает с разной скоростью

Оц

Не скоростью

Разный результат

Поведение разное

Дмитрий
29.06.2017
07:50:54
Поэтому его лучше и не использовать

Google
Mike
29.06.2017
08:19:55
Я работаю с переводом огромного легаси на тайпу, у меня особо выбора нет. 10 мегабайт кода

Aleh
29.06.2017
09:38:57
ааа, блин

с енамами проблема

при транспайлинге

для const enum надо знать тип на этапе транспайлинга, это надо учитывать импорты

короч одни енамы прям хуже других

Aleh
29.06.2017
09:44:22
а обычный енам?
ну обычный енам ж просто в объект транспайлится

для const enum надо знать тип на этапе транспайлинга, это надо учитывать импорты
https://www.typescriptlang.org/play/index.html#src=const%20enum%20Port%20%7B%0A%20%20%20%20HTTP%20%3D%2080%2C%0A%20%20%20%20HTTPS%20%3D%20443%0A%7D%0A%0Afunction%20f(p%3A%20Port%20%3D%20Port.HTTP)%20%7B%0A%20%20%20%20%0A%7D

если определение и использование const enum в одном файле, то еще можно разрулить, а вот с импортами уже проблема

хотя, если подумать, то с любыми импортами проблема

andretshurotshka?❄️кде
29.06.2017
09:51:42
А сам тс как это делает?

Aleh
29.06.2017
09:52:55
ну он-то типы знает)

да, короч с импортами засада будет

Артемий
29.06.2017
10:07:24
Всем привет! Есть какой-то способ нормально заставить vscode воспринимать импорты ts файлов из js? Собираю через webpack, babel+eslint для js, tsc+tslint для typescript. Никак не воспринимает содержимое ts файлов (там подсказки всякие и т.д.), либо не видит файлов, либо пытается скомпилировать ts и не может, так как eslint, получилось настроить чтобы просто игнорил эти файлы, но так не нравится.

Aleh
29.06.2017
10:10:45
честно говоря ничего не понял

Артемий
29.06.2017
10:18:30
когда подключаю делаю import js из js, то он например может сказать, что в файле нет такого экспорта (eslint import/named), когда подключаю js из ts тоже говорит, если ts из js подключать то не может нормально распарсить ts файлы. При этом компилится все нормально и собирается. Видимо проблема в том что eslint не может ts файлы по дефолту съедать, и для babel-eslint тоже для typescript плагин не нашел, наверно можно было бы решить переключением на typescript-eslint-parser, но тогда обычный babel-eslint отвалится. По сути надо наверно придумать способ подключать babel-eslint для js файлов и typescript-eslint-parser для ts файлов. Но не смог найти как это сделать. Может быть есть какие-то другие пути?

по поводу нескольких парсеров вот что нашел https://github.com/eslint/eslint/issues/8543

Aleh
29.06.2017
10:58:54
а почему проверку импортов не отдать тсу?

и в js и в ts

Google
Артемий
29.06.2017
11:13:50
потому что ts не съедает нормально js файлы, и для этого надо фиксить весь js

а хочется постепенно внедрить ts

Сергей
29.06.2017
11:18:01
может ли флоу в такой кейс: const demo = createObject('prefix', ['add', 'create']) в demo у меня будет объект { add: 'demo.add', create: 'demo.create', } может ли flow как-то вывести тип объекта, с этими полями?

Adam
29.06.2017
11:30:54
потому что ts не съедает нормально js файлы, и для этого надо фиксить весь js
Что значит: 'ts не съедает нормально js файлы?' Если отключить noImplicitAny (входит также в strict опцию), то остаётся только одно известное мне место, которое отличается по синтаксису - поля классов

Max
29.06.2017
11:31:36
сова, ты чатом ошибся )

Сергей
29.06.2017
11:32:18
сова, ты чатом ошибся )
тут ж написано что тайпскрипт без флоу это не любовь

Max
29.06.2017
11:32:46
ну нейминг кривой да

:)

Adam
29.06.2017
11:33:31
Aleh
29.06.2017
11:33:44
а ts так может?
да, через mapped types

Сергей
29.06.2017
11:33:44
конечно
без описания interface

Adam
29.06.2017
11:33:45
я хотел написать, но подумал, что тебе ts не интересен

Сергей
29.06.2017
11:33:52
Adam
29.06.2017
11:33:54
да, можно и без интерфейса

Сергей
29.06.2017
11:34:03
О_О

Adam
29.06.2017
11:34:08
прям указываешь литерал объекта в типе

Сергей
29.06.2017
11:34:31
и VSCode может подсказать?

Google
Сергей
29.06.2017
11:35:03
и если я потом напишу demo.asdasdasd будет ошибка?

Adam
29.06.2017
11:35:22
какие методы должны быть в объекте? Я попробую сейчас

Aleh
29.06.2017
11:36:07
покажешь???
https://www.typescriptlang.org/play/index.html#src=type%20ObjectWith%3CP%20extends%20string%2C%20M%20extends%20string%3E%20%3D%20%7B%0A%20%20%20%20%5BK%20in%20M%5D%3A%20string%0A%7D%0A%0Adeclare%20function%20createObject%3CP%20extends%20string%2C%20M%20extends%20string%3E(p%3A%20P%2C%20methods%3A%20M%5B%5D)%3A%20ObjectWith%3CP%2C%20M%3E%0A%0Aconst%20demo%20%3D%20createObject('prefix'%2C%20%5B'add'%2C%20'create'%5D)%0A%0Ademo.add.slice(1)

Aleh
29.06.2017
11:37:11
только походу нельзя сделать типа prefix + “.” + method

поэтому просто string поставил

Сергей
29.06.2017
11:37:33
в значении будет string

пофиг

Admin
ERROR: S client not available

Aleh
29.06.2017
11:37:50
пожалуйста

Aleh
29.06.2017
11:39:16
хз, в вики есть

Сергей
29.06.2017
11:39:45


Adam
29.06.2017
11:40:53
зачем T extends String - ты что, ждёшь производные от String?

Adam
29.06.2017
11:41:18
ты ждёшь строку, а не классы, её расширяющие, чтобы можно было правильно вывести тип на выходе

Google
Adam
29.06.2017
11:41:26
это избыточно

Dreamerinnoise
29.06.2017
11:41:44
ключ

Vladimir
29.06.2017
11:42:04
Aleh
29.06.2017
11:42:07
M это перечисление строк “a” | “b” | “c”

конструкция [K in M] что-то типа перебора по всем этим литералам

Adam
29.06.2017
11:42:58
я так и не понял интерфейс твоей функции, ты типа интерпретатора чтоли пишешь? Зачем принимать ['add', 'create'] - на мой взгляд это плохой интерфейс

Adam
29.06.2017
11:44:07
так тип-то какой у полей add и create?

String?

можно зделать захват литерала строки, если ожидаешь конкретную строку

Сергей
29.06.2017
11:45:14
Adam
29.06.2017
11:45:17
и будет intellisense

Adam
29.06.2017
11:45:31
сейчас попробую показать

let posibilities: 'add' | 'create';

Сергей
29.06.2017
11:46:08
extends string нужен в том примере

let posibilities: 'add' | 'create';
вот я нахуй не хочу такое писать

я хочу писать как можно меньше кода

один раз описать функцию без лишних вариаций значений и типов

Adam
29.06.2017
11:46:54
extends в этом примере не нужен, он нужен, если на входе вектора ты принимаешь точку, а на выходе сложения хочешь снова ветор вернуть

Страница 262 из 669