Настройка компиляции TypeScript
Вопрос к знатокам TypeScript:
1. Можно ли настроить компиляцию так, чтобы методы прототипа выглядели так: MyClass.prototype = { foo: function() {}, bar: function() {} }; А не так, как сейчас: MyClass.prototype.foo = function() {}; MyClass.prototype.bar = function() {}; 2. Но первый пункт не столько важен, как этот: class Test { constructor() { } get index():number { return 3; } get name() { return ''; } set index(value) { } } На выходе: var Test = (function () { function Test() { } Object.defineProperty(Test.prototype, "index", { get: function () { return 3; }, set: function (value) { }, enumerable: true, configurable: true }); Object.defineProperty(Test.prototype, "name", { get: function () { return ''; }, enumerable: true, configurable: true }); return Test; })(); Как видно, на каждый геттер/сеттер приходится индивидуальный defineProperty. Можно ли как-то настроить, чтобы было так? Test.prototype = { get index() { return 1; }, get name() { return ''; }, set index(value) { } }; Ну или как минимум через defineProperties. Использую PHPStorm, там встроенный компилятор, в настройках компиляции ничего нет. :( Для меня очень важно, чтобы код на выходе был аккуратным, ничего лишнего. |
Цитата:
|
Rise, печалька конечно. Ай ладно, чёрт с ним, на чистом лучше попишу, так на душе будет спокойней, что код не засран лишним. :)
nerv_, я вот такое наследование юзаю: MyClass.prototype = { ... __proto__: Object.create(ExtendClass.prototype) }; Тут есть какие-то подводные камни? Хотя, конечно может не совсем хорошо, что родитель получается будет лежать не в __proto__, а вообще в __proto__.__proto__, так как Object.create уже в __proto__ всё создаёт, но на практике вроде как всё быстро работает, косяков не наблюдается. |
Цитата:
Мне на выходе нужны прототипы, но в нормальном виде (пример в первом посте). Если бы я писал на ES6 всё, то не писал бы тогда на TS. |
Rise, все равно тоже самое выдаёт. :( Пишу tsc -t es5
|
Часовой пояс GMT +3, время: 01:41. |