@typescript_ru

Страница 395 из 669
Avetis
01.11.2017
12:51:47
http://take.ms/R6gER

может кто то подсказать почему так происходит?

Andrew
01.11.2017
12:54:21
у тебя ошибка не с функцией-параметром, а с someFanc

сделай console.log(this) перед этим вызовом, посмотри что там

Google
Sergey
01.11.2017
12:54:50
контекст проебался

Viktor
01.11.2017
12:55:27
объяви функцию как private FUNCTIONNAME = () => {}

Andrew
01.11.2017
12:55:44
p.s. к текущей ошибке не относится, но скоро ты на это напорешься: при вызове argFunc1 у тебя не будет this

возможно ты preload тоже куда-то передал таким же образом?

т.е. вместо this.someFanc(this.argFunc1) нужно писать this.someFanc(() => this.argFunc1()), чтобы захватить this

Avetis
01.11.2017
12:57:01
да preload тоже пердал черех this

всем спасибо, в preload this уже не тот класс а другой, другими словами скоуп не тот

Maxim
01.11.2017
13:14:06
давайте похоливарим об изоморфном апи

если вам надо сделать логгер (на клиенте в консоль, на сервере в файл) или rest сервис (на сервере реализация к базе, на фронте - к рест апи)

чего и как вы бы организовали ?

варианты: 1. интерфейсы/абстрактные классы в отдельном пакете - ипортируем реализуем

2. создаём два пакета, и на фронте подменяем веб паком импорт

3. Иньекция зависимостей в какой-нибудь синглтон при инициализации приложения

Google
Viktor
01.11.2017
13:17:05
в зависимости от энвайромента можно же писать куда угодно

Andrew
01.11.2017
13:17:16
второй вариант пахнет манки-патчингом

Дмитрий
01.11.2017
13:17:42
второй вариант плох тем, что зависимость от инструмента добавляет

Andrew
01.11.2017
13:17:49
третий вариант - расширенная версия первого, там все равно будут нужны интерфейсы

Дмитрий
01.11.2017
13:18:02
вообще DI для такого норм

Maxim
01.11.2017
13:18:19
второй вариант плох тем, что зависимость от инструмента добавляет
вот это и не нравится. Но в использовании проще всего

Дмитрий
01.11.2017
13:18:28
если абстрагироваться от того, что сама по себе мысль делать изоморфный логгер - так себе

Maxim
01.11.2017
13:19:05
иногда надо, ну пофиг, апи например. await getuserById пусть будет

Andrew
01.11.2017
13:19:23
я бы тоже сделал через DI - код логики использует интерфейс, а в инициализаторе выбираем реализацию

Maxim
01.11.2017
13:19:45
третий вариант - расширенная версия первого, там все равно будут нужны интерфейсы
Проблема, начинаешь думать что в какой последовательности импортировать, и что бы инициализация произошла до первого вызова

Andrew
01.11.2017
13:21:47
не понял - инициализация контейнера DI всегда будет перед запуском какого-либо пользовательского компонента

Дмитрий
01.11.2017
13:40:45
Но чтобы сделать браузерную версию пакета достаточно указать поле browser в package.json

И там есть даже какой-то расширенный синтаксис аж в виде объекта, но в принципе достаточно и этого. Это типа общепринятая конвенция между сборщиками

dima
02.11.2017
09:02:26
Привет. Не могу тайпинг подрубить. Вроде все правильно. Хелпаните

"typeRoots": [ "node_modules/@types", "node_modules/@develephant/types-phaser" ]

все есть. Но при импорте phaser ошибка. Типа нету тайпингов



Aleh
02.11.2017
09:10:39
"typeRoots": [ "node_modules/@types", "node_modules/@develephant/types-phaser" ]
Вторая строка скорее всего неправильная

Это ж не место, где лежат типы для пакетов, а конкретный пакет

Google
dima
02.11.2017
09:11:00
Aleh
02.11.2017
09:11:14
Что именно там есть?

dima
02.11.2017
09:11:48


phaser. Но тайпинги есть уже в либе. Но не работает

Vlad
02.11.2017
09:12:13
Как импортишь? dima

dima
02.11.2017
09:12:30
import * as name from "phaser"

Aleh
02.11.2017
09:13:10
А с каких пор тайпинги в json o.o

Vlad
02.11.2017
09:13:15
+1

2) разве недостаточно просто types? зачем typeRoot трогаешь 3) а если заимпортить через import X from “phaser”?

dima
02.11.2017
09:13:53


Vlad
02.11.2017
09:14:20
лол

andretshurotshka?❄️кде
02.11.2017
09:14:22
лол

Vlad
02.11.2017
09:14:26


dima
02.11.2017
09:14:29
ты орнул ?

там инфа храниться. Это уже от либы



кароче. Всем пасиб

Igor
02.11.2017
19:54:23
Здрастуйте, не подскажите к какой либе присмотреться для написания несложной игры (для универа). Желательно что нибудь более - менее простое. Буду благодарен, если ткнете в какой то бутстрап. Мне советовали Pixie.js, если к нему есть какие то маст хев библиотеки, то тоже нужно.

Google
Mike
02.11.2017
20:01:00
кинул инвайт на html5gamedev в личку

Andrey
02.11.2017
20:35:53
Кто нибудь встречался с проблемой, что TS на большом проекте начинает жрать CPU на 100% и не показывает ошибки и по внешним признакам зависает?

Ivan
02.11.2017
20:36:48
компилятор или что?

или редактор

или тайпскрипт сервис

Andrey
02.11.2017
20:37:21
тайпскрипт сервис, пока включен просто для проверки JS

иногда выплевывает сотни ошибок и тоже умирает

Ivan
02.11.2017
21:45:27
а, это и у меня было

Andrey
03.11.2017
04:26:37
а, это и у меня было
как решилось?

Friedrich
03.11.2017
06:41:48
А вы видели? Бивариантные параметры функций теперь в --strict отменили!

В смысле, там теперь есть новая опция --strictFunctionTypes, и она включена в --strict.

И с ней параметры теперь не бивариантные. Круто же.

Mike
03.11.2017
06:46:18
Ага

Но смотри, для методов так и остались бивариантны

Friedrich
03.11.2017
06:46:50
Хм. Блин, недоделали.

Mike
03.11.2017
06:47:02
Нет. Так задумано

Иначе все к херам сломается

Friedrich
03.11.2017
06:47:24
Из-за совместимости, да? Ну ладно, пускай тогда пока живёт.

Mike
03.11.2017
06:47:35
Нет не совместимость

Friedrich
03.11.2017
06:47:42
А что сломается?

Google
Friedrich
03.11.2017
06:47:48
Интересно было бы посмотреть.

Mike
03.11.2017
06:47:55
Ща

вот тут написано что сломается https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-function-parameters-bivariant

Friedrich
03.11.2017
06:50:17
Ага, понял. Совместимость типов рассматривает совместимость параметров в методах, так?

Mike
03.11.2017
06:50:51
да, иначе никак

Friedrich
03.11.2017
06:52:01
Ну, тут как посмотреть, на самом деле.

Пример, который там приведён (совместимость массивов) на самом деле не должен работать.

«На самом деле» совместимы только readonly-массивы.

Mike
03.11.2017
06:52:44
и это сломает мозг огромному количеству людей

Friedrich
03.11.2017
06:53:04
И вот readonly-массивы были бы совместимы и при отклчюенной бивариантности.

и это сломает мозг огромному количеству людей
Но, да, ты прав. И поэтому бивариантность параметров в методах пока оставили.

Mike
03.11.2017
06:53:48
на самом деле это и так неплохой шаг вперёд

потому что бивариантность часто мешает в коллбеках

Aleh
03.11.2017
06:54:00
Friedrich
03.11.2017
06:54:00
Возможно, в будущем можно будет как-то более аккуратно это решить — например, как-то аннотировать или вычислять по телу метода, что он использует массив только для чтения.

Пускай лучше ломает рантайм ?
Ну, мы просто потихоньку движемся к лучшему миру. Не всё сразу.

Mike
03.11.2017
06:54:22
Пускай лучше ломает рантайм ?
не забывай js отца и бога своего:)

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