
Mike
17.05.2017
13:50:51
блин
да

Сергей
17.05.2017
13:51:09

Aleh
17.05.2017
13:51:10
а зачем вообще тогда что-то передавать :D

Google

Friedrich
17.05.2017
13:51:20
Код правильный, но я, честно говоря, нить разговора потерял, и не понял, что он должен был нам доказать.

Adam
17.05.2017
13:51:27
не знаю )

Narek
17.05.2017
13:51:29

Aleh
17.05.2017
13:51:52

Narek
17.05.2017
13:51:58

Adam
17.05.2017
13:51:59
статики наследуются

Narek
17.05.2017
13:52:04

Mike
17.05.2017
13:52:08
выглядит страшно))))
это абстрактная демонстрация того как написать абстрактную фабрику, с произвольным количеством аргументов в конструкторе

Adam
17.05.2017
13:52:17
мало ли что ты сказал, ты неправильно возможности языка используешь

Aleh
17.05.2017
13:53:16
а чего вы ожидали?

Narek
17.05.2017
13:53:41
я ничего не ожидал, я знаю, что с typeof не работает

Mike
17.05.2017
13:54:10

Google

Aleh
17.05.2017
13:54:14
я не понимаю, какая у вас задача. Нельзя описать тип без дублирования для разных несовместимых по интерфейсу объектов

Adam
17.05.2017
13:54:48
классы не нужно передавать, это говорит о том, что ты не понимаешь, что делаешь. Если ты передаёшь их в декоратор - это одно дело. Тогда ты действительно модифицируешь класс

Aleh
17.05.2017
13:55:14
точно-точно не нужно?

Narek
17.05.2017
13:55:15

Aleh
17.05.2017
13:55:47

Adam
17.05.2017
13:55:47
ещё раз говорю, ты заблуждаешься

Narek
17.05.2017
13:56:14

Mike
17.05.2017
13:56:44
ещё раз говорю, ты заблуждаешься
ты же понимаешь что статики не наследуются, и два класса который один наследник другого не совместимы по статическому интерфейсу?
а инстансы их уже совместимы

Adam
17.05.2017
13:57:54
в ts статики наследуются, или я ошибаюсь?

Aleh
17.05.2017
13:58:03
наследуются да

Mike
17.05.2017
13:58:36
офигеть
не знал
https://www.typescriptlang.org/play/index.html#src=class%20A%20%7B%0A%20%20%20%20static%20test()%3A%20void%20%7Bconsole.log('qq')%20%7D%0A%20%20%20%20static%20test2()%3A%20void%20%7B%20%7D%0A%7D%0A%0Aclass%20B%20extends%20A%20%7B%0A%7D%0A%0Afunction%20f(a%3A%20typeof%20A)%20%7B%0A%20%20%20%20a.test()%0A%20%20%20%20a.test2()%0A%20%20%20%20let%20ainst%20%3D%20new%20a()%3B%0A%7D%0A%0Af(B)

Adam
17.05.2017
13:58:47
честно, мне больно от того, что на зарубежном stackoverflow дискуссии на порядок выше, а здесь люди не видят разницы межу классом и инстансом

Mike
17.05.2017
13:59:21
новички есть везде

Friedrich
17.05.2017
14:01:32
А вообще — ну, класс это инстанс метакласса. Это всем известно :)

Mike
17.05.2017
14:02:54
ну строго говоря класс в JS это функция

Friedrich
17.05.2017
14:02:57
Говоря научным языком, множество Set₁ является членом множества Set₂.

Google

Mike
17.05.2017
14:02:59
которая конструктор

Aleh
17.05.2017
14:03:09
а функция это объект
так что)

Narek
17.05.2017
14:03:15
Что-то вы далеко зашли, ребята

Friedrich
17.05.2017
14:03:21
Но и объект это тоже объект :)

Mike
17.05.2017
14:03:39
или нет?

Aleh
17.05.2017
14:03:58

Narek
17.05.2017
14:04:04
Нет, попробуй поменять конструктор у B
В свифте, например, для такого есть Class.self, кстати

Aleh
17.05.2017
14:07:52
тут тебе надо взять typeof и откинуть конструктор, это rest type, их еще нет, но я не уверен, будет ли там возможность указать конструктор

Сергей
17.05.2017
14:08:28
чет у меня не видит cadesplugin

Сергей
17.05.2017
14:09:56

Mike
17.05.2017
14:27:08
https://www.typescriptlang.org/play/index.html#src=class%20A%20%7B%0A%20%20%20%20static%20test()%3A%20void%20%7Bconsole.log('A%3A%3Aqq')%20%7D%0A%20%20%20%20static%20test2()%3A%20void%20%7Bconsole.log('A%3A%3Aqq2')%20%7D%0A%7D%0A%0Aclass%20B%20extends%20A%20%7B%0A%20%20%20%20static%20test2()%3A%20void%20%7B%20console.log('B%3A%3Aqq2')%20%7D%0A%0A%20%20%20%20public%20constructor(p%3Anumber)%20%7B%20%0A%20%20%20%20%20%20%20%20super()%3B%0A%20%20%20%20%7D%0A%7D%0A%0Atype%20Wrapper%3CT%3E%20%3D%20%7B%0A%20%20%20%20%5BP%20in%20keyof%20T%5D%3A%20T%5BP%5D%3B%0A%7D%3B%0A%0A%0Afunction%20f(a%3A%20Wrapper%3Ctypeof%20A%3E)%20%7B%0A%20%20%20%20a.test()%0A%20%20%20%20a.test2()%0A%20%20%20%20%2F%2Flet%20ainst%20%3D%20new%20a()%3B%0A%7D%0A%0Af(B)%3B%0AB.test2()
вот так можно, это именно откидывание конструктора


Narek
17.05.2017
14:32:17
Вот, такое работает?

Mike
17.05.2017
14:39:14
Вот, такое работает?
но вообще это какая-то странная штука, обычно если ты такое хочешь, то либо ты очень хорошо понимаешь что ты хочешь и делаешь что-то очень нетривиальное, либо ты что-то делаешь не так. Второе гораздо более часто встречается

Narek
17.05.2017
14:40:38
Ну в моем случае, классы, которые нужно передавать - это модели просто. И в другом классе нужно у них получать кое-какие данные через статические методы. Создавать для такого инстансы - не очень красиво, мне кажется

Mike
17.05.2017
14:43:52
ну вообще лучше наверно модели инстансами положить

Google

Narek
17.05.2017
14:44:15
Почему?

Mike
17.05.2017
14:45:31
хз как объяснить. Да так можно сделать, но обычно никто так не делает, тхз какие потом проблемы вылезут

Narek
17.05.2017
14:46:38
Хз, может и вылезут. У меня это в одном месте используется, не думаю, что какие-то проблемы будут.

Mike
17.05.2017
14:47:23
ну как хочешь

Aleh
17.05.2017
14:54:19


Narek
17.05.2017
14:55:11
они через декораторы записываются

Aleh
17.05.2017
14:55:37
куда и зачем для этого статические методы у класса?

Narek
17.05.2017
14:56:11
В конструктор через декораторы записываются данные, а статические методы их отдают

Admin
ERROR: S client not available

Ivan
17.05.2017
15:35:15
рефлекшн для беднызх

Дмитрий
17.05.2017
16:21:41
Если вы захотите найти ссылку на репл тайпскрипта через Гугл, никогда, слышите, никогда не гуглите "ts playground"

Dreamerinnoise
17.05.2017
16:21:54
баян

Дмитрий
17.05.2017
16:22:03
Надеюсь, меня хоть не уволят
Может и баян, но я же не знал

Dreamerinnoise
17.05.2017
16:22:32
я тут случайно загуглил ts playground, очень интересное мнение гугла на этот счёт. Сслыки не привожу по морально-этическим соображеням:)

Mike
17.05.2017
16:22:43
да-да ts roadmap тоже указывает на роадмап этих ...

Дмитрий
17.05.2017
16:25:09
А я ещё открываю такой ссылки в фоновых вкладках по инерции
?

Adam
17.05.2017
18:55:28
ts REPl - npm ts-node

Google

Adam
17.05.2017
18:57:34
install забыл

Aleh
17.05.2017
21:23:39

Сергей
18.05.2017
08:45:55
кто нибудь знает как можно в typings/*.d.ts файде ts2 объявить глобальную переменную?
нигде не видит cadesplugin

Friedrich
18.05.2017
08:53:28
Кажись, когда ты в файле пишешь import, он перестаёт считаться файлом с дефинишенами и становится обычным модулем.
Попробуй убрать импорт.

Сергей
18.05.2017
08:53:53
кстати, js файл не хочет идти в бандл
пробовал перенести все типы в файл с дефинишенами, чтобы избавиться от импорта
тоже не видит

Max
18.05.2017
08:54:49

Сергей
18.05.2017
08:55:14
видимо буду делать приватный npm-пакет

Friedrich
18.05.2017
08:56:04
а если тебе надо заимпортить интерфейс?
Я какими-то костылями на этот случай обкладываюсь, примерно такого вида:
interface Xxx { }
declare module 'something' {
export default moduleVar: Xxx;
}
(т.е. важно, чтобы интерфейс был вне модуля, тогда он виден снаружи везде)
Но я не уверен, что это универсально правильная идея. Может быть, есть и решение получше.
@sergeysova смотри что есть: https://github.com/Microsoft/TypeScript/issues/7352#issuecomment-191547232
declare global какой-то.

Сергей
18.05.2017
09:06:50
короч ничего не работает
хотя нет