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

Sergey
17.05.2018
14:37:12

Aleh
17.05.2018
14:37:19
если ты не можешь настроить что-то, это не значит, что этого чего-то нет

Google

Sergey
17.05.2018
14:38:03

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

Andrey
17.05.2018
14:38:43

Artur
17.05.2018
14:44:27

ALFer
17.05.2018
14:45:43

Artur
17.05.2018
14:45:55

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

Morsik
17.05.2018
18:54:52

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:11

Morsik
17.05.2018
19:04:14

Максим
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
хотя через вызов .constructor() не получится, придется через new (мб стоит ишью на это завести)

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

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

Максим
17.05.2018
20:26:03

Aleh
17.05.2018
20:26:58

Bogdan
17.05.2018
20:27:34

Aleh
17.05.2018
20:28:16

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
типо у меня после этого "сорцмапы" слетят и дебаг будет битый
А я может хчоу редачить код по быстрому в найденых пробелмных местах и идти дальше
Пофиг, чито пока не сделаю ребилд, не будет применн фикс

Aleh
17.05.2018
20:36:05

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
(которое после джавы казалось диким)

Aleh
17.05.2018
20:38:11

Sergey
17.05.2018
20:51:53

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

Vlad
17.05.2018
20:56:58
ваша проблема тоже может быть в общем-то будет решена.

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? Собственно проблема в том, что надо поменять сигнатуру у метода сервис воркера. Заранее спасибо.

Artur
18.05.2018
07:40:06

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

Artur
18.05.2018
07:41:52

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'.