@typescript_ru

Страница 611 из 669
Дмитрий
17.05.2018
14:35:42
Это не значит что в нём мало правил

Sergey
17.05.2018
14:37:12
Это не значит что в нём мало правил
https://prettier.io/docs/en/options.html вот этих? Это изобилие?) Я не догоняю, явно.

Aleh
17.05.2018
14:37:19
Дык преттиер как тут пишут тоже не особо настраивается.
я про то, что он вообще форматирует. Буквально выставляет правильные indent и фигурные скобочки у структурных операторов

если ты не можешь настроить что-то, это не значит, что этого чего-то нет

Google
Sergey
17.05.2018
14:38:03
если ты не можешь настроить что-то, это не значит, что этого чего-то нет
А если мне дефолт не нравится - форкать преттиер?)

Aleh
17.05.2018
14:38:10
не использовать

ALFer
17.05.2018
14:45:43
А выводы сделаны были?
это точно мне вопрос?

Alex
17.05.2018
18:54:00
есть ли в TypeScript аннотация override? как в жабе или в C#

Alex
17.05.2018
18:55:16
чтобы не обосраться и не внести новый метод вместо перекрытия существующего

за тем же, зачем и в жабе

Sergey
17.05.2018
18:56:06
Перегрузка просто в классе объявляется такой же метод

Google
Sergey
17.05.2018
18:57:21
override это для слабых дзюдоистов

Alex
17.05.2018
18:58:37
ок спс

ок можно ещё тупой вопрос. Можно ли в TS получить все классы объявленные в определённом namespace ? в виде массива

Максим
17.05.2018
19:04:30
зачем?
Вопрос стоял можно ли

Не нам судить о причудах других ))

Morsik
17.05.2018
19:06:54
Object.keys вроде как работает, но я не тестил на межфайловом, там все сломается наверно

Alex
17.05.2018
19:10:47
как сделать Dictionary классов? типа const theClass = MyClasses[className] const myInstance = theClass.constructor();

типа такого?

Morsik
17.05.2018
19:12:47
как сделать Dictionary классов? типа const theClass = MyClasses[className] const myInstance = theClass.constructor();
Record<string, typeof BaseClass> ну или Record<string, {new(): T}> // вместо T то что хочется получить

хотя через вызов .constructor() не получится, придется через new (мб стоит ишью на это завести)

Alex
17.05.2018
19:54:36
кароч спс ребятб, я разобрался. И проход по namespace тоже возможен, даже мультифайл - на момент когда загрузка уже прошла

Aleh
17.05.2018
20:24:35
Вопрос стоял можно ли
Ну, это не совсем правильная позиция, потому что частенько это желание перенять велосипед из привычного языка. А вот если описана задача(зачем), то и решение смогут предложить каноничное

Aleh
17.05.2018
20:26:58
есть ли в TypeScript аннотация override? как в жабе или в C#
В тс можно не юзать классы для полиморфизма, поэтому иерархии классов скорее редкость и выдают бывших процедурщиков на жаве

Bogdan
17.05.2018
20:27:34
Ну, это не совсем правильная позиция, потому что частенько это желание перенять велосипед из привычного языка. А вот если описана задача(зачем), то и решение смогут предложить каноничное
Вот я как-то на стековерфло спросил, как сделать, чтобы во время отладки с# кода редачить код, а мне обьяснили, что мне это не надо Такое.

Alex
17.05.2018
20:30:35
я в любой непонятной ситуации пилю иерархию классов

Aleh
17.05.2018
20:31:45
Ради эксперимента можешь попробовать так не делать, вдруг понравится)

Google
Alex
17.05.2018
20:31:46
и обмазываюсь ею

Bogdan
17.05.2018
20:34:23
Тебе наверное объяснили в чем принципиальная проблема и почему это низя?
такое You don't want to modify the file the debugger is using for source view, since that would mess up symbolic information (line numbers). Make a copy of the source code in another directory and edit the copy. Use any version control system to sync changes between your two copies. люблю формлировку You don't want to типо у меня после этого "сорцмапы" слетят и дебаг будет битый А я может хчоу редачить код по быстрому в найденых пробелмных местах и идти дальше Пофиг, чито пока не сделаю ребилд, не будет применн фикс

ок можно ещё тупой вопрос. Можно ли в TS получить все классы объявленные в определённом namespace ? в виде массива
если у тебя не ES6 модули, а старые неймспейсы, то просто foreach по неймспейсу, только в рантайме не ясно будет, где класс, а где просто функция)

Bogdan
17.05.2018
20:36:16
есть еще Metadata Reflection https://github.com/rbuckton/reflect-metadata

Aleh
17.05.2018
20:36:49
Можно еще в compile time с помощью ts-simple-ast

Morsik
17.05.2018
20:37:01
Bogdan
17.05.2018
20:37:11
Так по итогу можно редактировать или нет?)
https://stackoverflow.com/questions/14512759/modifying-the-code-while-debugging-in-vs-2010-without-rebuild ну оп итогу открыть воторую копию IDE Потом появились хакрские файлы, коорый снимали лок с тиектсового документа по сути ограничение IDE (которое после джавы казалось диким)

Так по итогу можно редактировать или нет?)
вобще там под 32 бита, c# код можно на горячую подменять, это сделали в ИДЕ а под 64 бита, решили рпосто заблчоить файл, чтобы не повадно было)

Bogdan
17.05.2018
20:54:56
5 лет прошло но ещё пичот?)
немного печет, когда говорят "You don't want to" на SO это часто Темболее, что в случае ОПа это может быть и не то тчо ему надо, но кому-то может пригодится лучше скзхать как, и обяснить почему не стоит)

Vlad
17.05.2018
20:56:58
немного печет, когда говорят "You don't want to" на SO это часто Темболее, что в случае ОПа это может быть и не то тчо ему надо, но кому-то может пригодится лучше скзхать как, и обяснить почему не стоит)
да это нормальная тема. люди часто прямо не знают как ответить на вопрос. ничего плохого в том, что они услышат подробное объяснение проблемы нет. вполне вероятно что они смогут предложить другой вариант решения в обход. иногда он может быть даже действительно правильнее, чем то , что вы изначально искали

ваша проблема тоже может быть в общем-то будет решена.

Bogdan
17.05.2018
20:58:03
тоже верно, альтернативный путь может быть лучше)

Vlad
17.05.2018
20:58:50
на самом деле часто ставится прямой вопрос, т.к. не хочешь тратить время людей на подробное объяснение чего-то. скажут много букаф и читать не будут.

быстрый легкий вопрос больше внимания привлечет. кто-то мб заинтересуется и тогда не позорно и подробно рассказать.

¯\_(ツ)_/¯

Morsik
17.05.2018
21:24:53
только попробуй сотворить это еще где-то

лан, пока разобраться можно

Google
Max
18.05.2018
07:22:57
привет подскажите как засунуть в дескриптор метода значение, как в примере ниже @enumerable(val) greet(val) { return "Hello, " + val; }

в доке @enumerable(false) greet() { return "Hello, " + this.greeting; } но они явно записали false. я хочу менять это значение, в зависимости от значения аргумента в методе

Admin
ERROR: S client not available

Илья
18.05.2018
07:39:11
Здравствуйте. В тс новичок, поэтому нужен ваш совет. Есть ли какой-то способ переопределить метод у интерфейса или вообще весь интерфейс который содержится в lib? Собственно проблема в том, что надо поменять сигнатуру у метода сервис воркера. Заранее спасибо.

Sergey
18.05.2018
07:41:24
А если унаследоваться от первого интерфейса и просто объявить в дочернем метод? Так не будет работать?

Sergey
18.05.2018
07:42:30
Ну нет, это не наш метод

Илья
18.05.2018
07:47:09
Пробовал разные способы. В случае глобала ничего не меняется, проблема аналогичная error TS2717: Subsequent property declarations must have the same type. Перетаскивать типы к себе или вообще убирать либу крайне неудобно. В случае с extend, там incompatible

как самый конченый вариант это перетаскивать все к себе вообще

проблема появилась в следствии того, что нужно обновить ТС, а там в дом добавились эти типы. Раньше была service_worker_api где все верно, а теперь она deprecated

просто кроме воркера много чего еще придется тащить с lib, если ее убрать из tsconf

Максим
18.05.2018
07:50:52
Sergey
18.05.2018
07:51:58
как самый конченый вариант это перетаскивать все к себе вообще
function reverse(string: string): string; function reverse<T?array: T[]): T[]; function reverse<T?stringOrArray: string | T[]): string | T[] { return typeof stringOrArray === "string" ? stringOrArray.split("").reverse().join("") : stringOrArray.slice().reverse(); }

Илья
18.05.2018
07:52:01
я понимаю, но факт в том, что сигнатура верная и рабочая и не соответствует типу

Sergey
18.05.2018
07:52:11
Вы про такое в смысле затаскивать всё?

Илья
18.05.2018
07:53:55
я про сделать свой global.d.ts и утащить из dom то, что нужно конкретно нам

но это дико неудобно было бы

Максим
18.05.2018
07:56:29
declare global { interface Object { createAndInit<T>(constructor: new() => T, props: Partial<T>): T; } } if (!Object.prototype['createAndInit']) { Object.defineProperty(Object.prototype, 'createAndInit', { value: <T>(constructor: new() => T, props: Partial<T>): T => { const instance = new constructor(); for (const key in props) { if (props.hasOwnProperty(key)) { instance[key] = props[key]; } } return instance; } }); } запили что то такое и порефактори

Sergey
18.05.2018
07:57:02
Так там уже такое советовали вроде

Google
Илья
18.05.2018
07:57:05
справедливости ради, судя по гитхабу websdk от onesignal они перетащили все

Sergey
18.05.2018
07:57:59
А, это декоратор

Илья
18.05.2018
08:00:10
Всем спасибо, буду смотреть.

Alexander
18.05.2018
08:27:21
Компаньерос! Вот, пишу в application.ts: export class Application { async createPixiApp() { // do stuff } } А вот и main.ts import {Application} from './application'; let app = new Application(); await app.createPixiApp(); А вот webpack говорит: ERROR in ./src/main.ts [tsl] ERROR in /home/doctor/prog/hungry-boxes/src/main.ts(20,1) TS1308: 'await' expression is only allowed within an async function. ERROR in ./src/main.ts Module parse failed: The keyword 'yield' is reserved (8:0) You may need an appropriate loader to handle this file type. Причём я проверил! createPixiApp теперь *реально* отдаёт промис! ЧЯДНТ?

Собираю webpack+typescript, стандартным ts-loader, таргет es6, разумеется

Aleh
18.05.2018
08:29:18
Нельзя писать await вне async функции

Пока что https://github.com/MylesBorins/proposal-top-level-await/

Alexander
18.05.2018
08:33:41
упс, действительно. Спасибо! =)

Что тащемта логично! Эта штуковина же "на самом деле" раскрывается в пару генераторов, если транспайлится в ES5. Да, как-то я не подумал =)

Sukhrob
18.05.2018
08:53:34


Alexandr
18.05.2018
13:53:46
а кто может скинуть package.json для работы с Angular 2?

у меня чет ошибку пишет: node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts(24,16): error TS2304: Cannot find name 'Map'.

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