#javascript #html #typescript #web-applications #ecmascript-5
Вопрос:
class Test {
otherFunction() {}
method() {
this.otherFunction();
}
}
Приведенный выше машинописный текст будет генерировать ES5 js следующим образом
var Test = /** @class */ (function () {
function Test() {
}
Test.prototype.otherFunction = function () { };
Test.prototype.method = function () {
this.otherFunction();
};
return Test;
}());
Как получить вывод, подобный приведенной ниже функции, после компиляции машинописного текста?
var Test = (function() {
function Test() {}
function otherFunction() {}
Test.prototype.method = function () {
otherFunction();
}
return Test;
})();
Комментарии:
1. Это похоже на то, что будет выведено, если вы нацелитесь на более раннюю версию ES в своем tsconfig.json
2. Вы имеете в виду, что такое TS-эквивалент этого?
3. « тест класса { Другая функция() {} метод() { эта.Другая функция(); } } « приведенный выше код сгенерирует ниже js « var Тест = /** @класс */ (функция () { функциональный тест() { } Тест.прототип.Другая функция = функция () { }; Тест.прототип.метод = функция () { эта.Другая функция(); }; возвращаемый тест; }()); « чего не ожидается. мне нужно вот так « var Тест = (функция() { функциональный тест() {} функция Другая функция() {} Тест.прототип.метод = функция () { Другая функция(); } возвращаемый тест; })(); «
Ответ №1:
Скомпилируйте этот
(function () {
function Test() {}
function otherFunction() {}
Test.prototype.method = function () {
this.otherFunction();
};
return Test;
})();
Он будет генерировать
(function () {
function Test() { }
function otherFunction() { }
Test.prototype.method = function () {
this.otherFunction();
};
return Test;
})();
Комментарии:
1. Спасибо вам за ваш ответ. Но, во-первых, код не в машинописном виде, это javascript. В вопросе, если вы проверите, что первый фрагмент является машинописным, будет сгенерирован второй. но мне нужен код машинописи, который генерирует код, подобный третьему.