@typescript_ru

Страница 617 из 669
Sukhrob
24.05.2018
15:44:04
Ну определил. Как дальше его использовать?
interface ClockConstructor { nameless(hour: number, minute: number); } class Clock implements ClockConstructor { static nameless(hour: number, minute: number){} }

Sergey
24.05.2018
15:44:30
Да я не против, правда, мне показалось необычным и всё)

Sukhrob
24.05.2018
15:45:03
Ок, это что-то нормальное
вполне возможно что при попытке создания интерфейс для статики логика нарушается но хотелось бы подробностей чему вы считаеет что это странность?

Google
Aleh
24.05.2018
15:45:19
interface ClockConstructor { nameless(hour: number, minute: number); } class Clock implements ClockConstructor { static nameless(hour: number, minute: number){} }
ты объявляешь интерфейс не для реализации, а для абстрагирования от реализации клиентским кодом

Friedrich
24.05.2018
15:45:20
Кажись, в самом классе никак нельзя сказать, что ты имплементишь этот интерфейс. Ну, я пока только на выводе типов вспомнил (см. мой пример).

Sukhrob
24.05.2018
15:45:25
Это не должно работать
это и не работает мне нужен рабочий вариант

Aleh
24.05.2018
15:45:28
короче говоря владелец интерфейса - тот, кто его использует

interface A { f(): void } class B { static f() {} } function dosmth(o: A) { return o.f() } dosmth(B)

Sergey
24.05.2018
15:52:36
вполне возможно что при попытке создания интерфейс для статики логика нарушается но хотелось бы подробностей чему вы считаеет что это странность?
Я не знаю как это должно выглядеть, что вы вообще потребителям интерфейса хотите этим сказать. Но я как бы не претендую на абсолютное знание, наверняка нужно такое

..
24.05.2018
16:28:54
IT-Liba Библиотека программиста | Programmer Library Скачать книги бесплатно Download Books Free pdf djvu epub https://t.me/itliba

Sergey
24.05.2018
16:44:27
ну вот, задал вопрос и сразу в кусты... ))
Ну в смысле) Я пытаюсь понять что вы подобным образом выразить пытаетесь

Очень сильно задумался, правда. Спасибо)

Sukhrob
24.05.2018
16:46:10
Sukhrob
24.05.2018
16:48:22
Класс ведь и есть функция-фабрика!
одно дело когда используется оператор new и совсем другое дело, когда при импорте надо импортировать какую-то функцию-фабрику ну в общем я понял как это делать спс за вариант решения! завтра подумаю заюзать это или вообще отказаться от статики в интерфейсе))

Google
Artem
24.05.2018
21:53:27
доброе, ребят есть проект на Rails, как бы нам в нем красиво организовать локализацию i18n в части TyprScript из рельсового yml, кто-то сталкивался? https://github.com/yizeng/strafforts



RML
24.05.2018
22:05:38
Зачем они так сделали >.<
Потому что TS клон языка AS3 )

Yan
24.05.2018
22:11:59
Потому что TS клон языка AS3 )
С# значит непричём?

RML
24.05.2018
22:12:41
С# значит непричём?
абсолютно не причем

Yan
24.05.2018
22:13:53
?

RML
24.05.2018
22:14:57
AS3 позаимствовал синтаксис из Сишарп 1 (2002) и Джава языка. Пришло время наказать вора и переделали его в TS заранее убив флэш, чтоб не сопротивлялся)

RML
24.05.2018
22:18:39
Многие как свой первый язык выбирали между Турбо Паскалем и Бэйсиком в универе, это было основа основ, чтобы реализовывать алгоритмы а не терять время на синтаксисы разных языков. А я пошел еще дальше и начал изучать AS3 как свои первые шаги в мир программирования, и не пожалел даже, потому что мне попалась книга от Колина Мука

Alexandr
24.05.2018
22:20:06
а раньше ведь AS3 прогеры были востребованы

RML
24.05.2018
22:22:03
а раньше ведь AS3 прогеры были востребованы
Совершенно верно, это тоже наверное повлияло на мой выбор. Когда вышел TS, изучил этот язык ровно за неделю, ведь там схожесть на 98.5%

И после всего через что я прошел изучив куча языков и технологий, я стал одним из самых крутых программистов во всей истории человечества. Да, я горжусь с собой и, спасибо что я есть. Я не шучу.

Ведь это же я RML! Вам это имя о чем то говорит?

Всего то три латинских букв, но что стоит за этим именем..

andretshurotshka?❄️кде
25.05.2018
02:50:11
лол

Максим
25.05.2018
07:04:34
Ведь это же я RML! Вам это имя о чем то говорит?
Точно точно, я его фанат он сделал... Ну это ну как его. Ты очень скромный чувак ?

Sergey
25.05.2018
07:10:16
Всего то три латинских букв, но что стоит за этим именем..
Но латыши украли эти буквы у греков. Как и Action Script.

Vladimir
25.05.2018
07:12:29
а ты случайно не работал над такой игрой как гульмэн?

RML

Google
Andrey
25.05.2018
07:16:53
какой-то троль зашел в чат этот RML

Damir
25.05.2018
07:44:31
Парни, можно ли сделать ссылку на список енамов, который после можно было бы вызывать напрямую и работало сравнение «ссылка на енам === енам»?

К примеру есть файл с енамами - app/Enums, внутри лежит енам type { one, two, three }

Есть интерфейс, house { type: Enums.type, title: string, id: number }

В другом месте у меня есть еще один файл с енамами - clients/Enums, где type отсутствует

Чтобы не кидать импорт из app/Enums, можно ли добавить ссылку на type в clients/Enums, чтобы можно было вызывать type напрямую из clients/Enums?

Чтобы interface house при этом работал, который ожидает получить на вход app/Enums.type

Sergey
25.05.2018
07:50:37
А почему импорт плохо?

Damir
25.05.2018
07:51:59
А почему импорт плохо?
Енамы относятся к разным модулям, но принято решение сделать один из классов глобальным, который тянет за собой енам

Aleh
25.05.2018
07:52:21
Явный импорт > неявный импорт

Damir
25.05.2018
07:55:04
было принято плохое решение
Дублирование большого кол-ва кода в большом кол-ве модулей усложняет отладку и приводит к неисправлению багов в других модулях при правке в одном

Sergey
25.05.2018
07:56:13
А как это вообще могло бы выглядеть? Ну, "ссылка" эта.

Aleh
25.05.2018
07:56:17
Зачем дублировать если можно импортить из других модулей

Damir
25.05.2018
07:56:19
заводить глобальные обьекты в таком случае серебрянная пуля
На каждое действие всегда есть два мнения))

Зачем дублировать если можно импортить из других модулей
Теперь дублировать не будем, вопрос как перетащить енам чтобы не рефакторить лишнего, я так понимаю возможности сделать ссылку с одного енама на другой в typescript нет

Aleh
25.05.2018
07:58:44
Я плохо понимаю что за ссылка и чем не подходит import { YourEnumFromAnotherModule } from "path/to/another/module"

Damir
25.05.2018
07:59:42
Понятно, спасибо

Google
Maxim
25.05.2018
09:08:37
Яу, парни, подскажите пожалуйста, кто нибудь сталкивался с проблемой TS2428: All declarations of 'Dispatch' must have identical type parameters.? Может подскажите как это можно решить? Гуглил, но ответа на данный вопрос так и не нашёл.

Решил проблему. awesome-typescript-loader - лох! Поставил ts-loader, полёт нормальный.

Admin
ERROR: S client not available

Sam
25.05.2018
09:49:45
Привет всем. Метод get params.get('id') возвращает тип стринг, как его привильно приводить к числу средствами typescript, или юзать parseInt как в js?

private id: number; this.id = params.get('id');

Олег
25.05.2018
09:51:12
также как и в жс

Sergey
25.05.2018
09:51:36
Привет всем. Метод get params.get('id') возвращает тип стринг, как его привильно приводить к числу средствами typescript, или юзать parseInt как в js?
Парсить, работать у вас будет жс код. Приведение типа вообще ничего не делает в рантайме.

Andrew
25.05.2018
11:03:48
лучше всего parseInt, для простоты иногда достаточно +

Сергей
25.05.2018
11:05:35
лучше всего parseInt, для простоты иногда достаточно +
я в еслинте сделал правило, на запрет таких приведений типов только Number и parseInt(x, radix) все явно и понятно минификатор уж разберется на что заменить parseInt

Кирилл
25.05.2018
19:27:41
Кто то билдил typescript под использование в браузерах, без использования webpack или rollup?

Просто заметил, что в конфигах можно прописать билд в umd, но на выходе что то странное получается

Aleh
25.05.2018
19:28:50
У меня есть древний angularjs, который browserify собирает

Или в смысле без бандлеров?

Кирилл
25.05.2018
19:31:26
Или в смысле без бандлеров?
В tsconfig.json можно прописать module: umd, что как бы должно компилировать все в модуль и для браузеров, и для ноды, но на выходе получается какая то связка из нескольких модулей, которая только с нодой работает.

Кирилл
25.05.2018
19:32:28
Это с outFile?
Нет, почему то не дает outFile, пишет, что для umd нужен outDir

Aleh
25.05.2018
19:33:03
Понятно, на этом шаге мои знания изкоробочного сборщика заканчиваются)

Кирилл
25.05.2018
19:33:33
Спасибо за все

Google
Aleh
25.05.2018
19:37:51
Няма за шо

Alex
26.05.2018
17:55:13
в typescript есть инициализаторы объектов? как в C# point = new Point() { x = 0, y = 0 }

Alexandr
26.05.2018
17:56:17
но вроде нету

Sergey
26.05.2018
17:57:30
в typescript есть инициализаторы объектов? как в C# point = new Point() { x = 0, y = 0 }
Пока нету. Но люди выкручиваются https://habr.com/company/ruvds/blog/350536/

Friedrich
27.05.2018
05:24:26
new class Point { x = 0; y = 0 }() кек
Элегантным движением руки брюки превращаются… class Point { x: number; y: number; } const createPoint = () => new class _ extends Point { x = 10; y = 30; }; // нет, ну серьёзно, смотрите — почти то что надо const pt = createPoint(); console.log(pt instanceof Point); // true

Friedrich
27.05.2018
08:06:01
Ого!

Дмитрий
27.05.2018
08:06:14
Но я надеюсь никто не решит так писать ?

andretshurotshka?❄️кде
27.05.2018
08:08:04
kek: Point = { x: 0, y: 0 }

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