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;
}());
๋๋ ์ด๊ฒ์ด ํ๋ ธ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ถ์ธ, ์ด๊ฑฐ ํ, ์ซ์ ๋ฐ ๋ฌธ์์ด์ ํฌํจํ ๋ชจ๋ ๋ฆฌํฐ๋ด ์ ํ์ ๋ํด์ด ์์ ์ ์ํํด์ผํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ถ์ธ, ์ด๊ฑฐ ํ, ์ซ์ ๋ฐ ๋ฌธ์์ด์ ํฌํจํ ๋ชจ๋ ๋ฆฌํฐ๋ด ์ ํ์ ๋ํด์ด ์์ ์ ์ํํด์ผํฉ๋๋ค.