Typescript: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП 'рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдХреЗ рдмрдЬрд╛рдп рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ 'рдСрдмреНрдЬреЗрдХреНрдЯ' рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рд╕рд┐рддре░ 2016  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг: 2.0.2.0 рдмреАрдЯрд╛

рдХреЛрдб

function PropDeco(target: Object, propKey: string | symbol) { }

class Foo {
    <strong i="9">@PropDeco</strong>
    public foo: "foo" | "bar";
}
--experimentalDecorators  --emitDecoratorMetadata

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░:

рдЪреВрдВрдХрд┐ Foo.foo рдХрд╛ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдХрд╛рд░ String , рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

__metadata('design:type', String)

рдкреВрд░реНрдг рдХреЛрдб:

function PropDeco(target, propKey) { }
var Foo = (function () {
    function Foo() {
    }
    __decorate([
        PropDeco, 
        __metadata('design:type', String)
    ], Foo.prototype, "foo", void 0);
    return Foo;
}());

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:

рд╣рд╛рд▓рд╛рдВрдХрд┐, String рдмрдЬрд╛рдп, рд╕рдВрдХрд▓рдХ Object рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ Foo.foo ред

__metadata('design:type', Object)

рдкреВрд░реНрдг рдХреЛрдб:

function PropDeco(target, propKey) { }
var Foo = (function () {
    function Foo() {
    }
    __decorate([
        PropDeco, 
        __metadata('design:type', Object)
    ], Foo.prototype, "foo", void 0);
    return Foo;
}());

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдореЗрдВ рдмреВрд▓рд┐рдпрди, рдПрдирдо, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд╣рд┐рдд рд╕рднреА рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдореЗрдВ рдмреВрд▓рд┐рдпрди, рдПрдирдо, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд╣рд┐рдд рд╕рднреА рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Zlatkovsky picture Zlatkovsky  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dlaberge picture dlaberge  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

remojansen picture remojansen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Roam-Cooper picture Roam-Cooper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bgrieder picture bgrieder  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ