class Animal { animal = 'animal'; say() { alert('i animal') } } class Cat extends Animal { cat = 'cat'; say() { super.say(); alert('and i cat') } } new Cat().say(); а получается так var __extends = this.__extends || function (d, b) { function __() { this.constructor = d; } __.prototype = b.prototype; d.prototype = new __(); }; var Animal = (function () { function Animal() { this.animal = 'animal'; } Animal.prototype.say = function () { alert('i animal'); }; return Animal; })(); var Cat = (function (_super) { __extends(Cat, _super); function Cat() { _super.apply(this, arguments); this.cat = 'cat'; } Cat.prototype.say = function () { _super.prototype.say.call(this); alert('and i cat'); }; return Cat; })(Animal); new Cat().say(); //@ sourceMappingURL=td.js.map |
Цитата:
|
охуенно, а сколько вам лет )?
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Кстати поиграйся с Coffee, он ппц сахарный, куда более сахарнее, чем TypeScript. Рекомендую прочитать Марк Бейтс Coffee Script. |
меня бесит синтаксис кофя... он пиздец какой неочевидный это факт.
ну как я понял typescript его суть именно в проверке типов перед компиляцией и все, а строгая типизация позволяет движкам компилить более быстрый байткод... а в ECMA6 такое есть? functionm test (lol:string, qq:Cat){ } |
Цитата:
Цитата:
В новом стандарте JS вроде как должны появится способы проверки входных параметров функций, но не более того. |
var Animal = function () { this.animal = 'animal'; }; Animal.prototype.say = function () { alert('i animal'); }; var Cat = function () { Animal.apply(this, arguments); this.cat = 'cat'; } Cat.prototype = Object.create(Animal.prototype, { constructor: {value: Cat, writable: true, enumerable: false, configurable: true} }); Cat.prototype.say = function () { Animal.prototype.say.call(this); alert('and i cat'); }; new Cat().say(); То есть на сегодняшний день этот код должен примерно так выглядеть? |
Часовой пояс GMT +3, время: 18:34. |