{"id":16989,"date":"2026-07-24T14:39:59","date_gmt":"2026-07-24T05:39:59","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=16989"},"modified":"2026-07-24T15:16:42","modified_gmt":"2026-07-24T06:16:42","slug":"typescript-%ea%b5%ac%ec%84%b1-%ec%8b%9c%ea%b7%b8%eb%8b%88%ec%b2%98construct-signature","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=16989","title":{"rendered":"TypeScript, \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98(Construct Signature)"},"content":{"rendered":"<p>\uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub294 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uc5d0 \ub300\ud55c \ud568\uc218 \ud0c0\uc785\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \uc608\uc81c \ucf54\ub4dc\ub97c \ubcf4\uba74 &#8230;<\/p>\n<p>\uc784\uc758\uc758 \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uc0dd\uc131\uc790\uc758 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\ninterface PersonConstructor {\r\n  new (name: string): Person;\r\n}\r\n<\/pre>\n<p>\uc0c1\uae30 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub294 Person \ud074\ub798\uc2a4\uc758 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \uc0dd\uc131\uc790 \ud568\uc218\uc758 \ud0c0\uc785\uc774\uba70 \uc0dd\uc131\uc790\ub294 name\uc774\ub77c\ub294 \ubb38\uc790\uc5f4 \ud0c0\uc785\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. \uc774\uc81c \uc774 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub97c \ud1b5\ud574 \uc0dd\uc131\ub420 \uac1d\uccb4\uc758 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\nclass Person {\r\n    constructor(public name: string) {}\r\n}\r\n<\/pre>\n<p>\uc774\uc81c \uc55e\uc11c \uc815\uc758\ud55c \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub97c \ud1b5\ud574 Person \ud074\ub798\uc2a4\uc758 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \ud568\uc218\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\nfunction createPerson(\r\n    ctor: PersonConstructor,\r\n    name: string\r\n): Person {\r\n    return new ctor(name);\r\n}\r\n<\/pre>\n<p>\uc0ac\uc6a9 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\nconst person = createPerson(Person, \"Alice\");\r\n\r\nconsole.log(person.name); \/\/ Alice\r\n<\/pre>\n<p>\uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub294 \uc81c\ub2c8\ub9ad\uc73c\ub85c \ub9ce\uc774 \uc791\uc131\ub418\ub294\ub370.. \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\nclass Person {\r\n    constructor(public name: string) {}\r\n}\r\n\r\nclass Student {\r\n    constructor(public name: string) {}\r\n}\r\n\r\nfunction createInstance&lt;T>(\r\n    ctor: new (name: string) => T,\r\n    name: string\r\n): T {\r\n    return new ctor(name);\r\n}\r\n\r\nconst p = createInstance(Person, \"Alice\");\r\nconst s = createInstance(Student, \"Bob\");\r\n\r\nconsole.log(p); \/\/ Person\r\nconsole.log(s); \/\/ Student\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub294 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uc5d0 \ub300\ud55c \ud568\uc218 \ud0c0\uc785\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \uc608\uc81c \ucf54\ub4dc\ub97c \ubcf4\uba74 &#8230; \uc784\uc758\uc758 \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uc0dd\uc131\uc790\uc758 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. interface PersonConstructor { new (name: string): Person; } \uc0c1\uae30 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub294 Person \ud074\ub798\uc2a4\uc758 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \uc0dd\uc131\uc790 \ud568\uc218\uc758 \ud0c0\uc785\uc774\uba70 \uc0dd\uc131\uc790\ub294 name\uc774\ub77c\ub294 \ubb38\uc790\uc5f4 \ud0c0\uc785\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. \uc774\uc81c \uc774 \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98\ub97c \ud1b5\ud574 \uc0dd\uc131\ub420 \uac1d\uccb4\uc758 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. class Person { constructor(public &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=16989\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;TypeScript, \uad6c\uc131 \uc2dc\uadf8\ub2c8\ucc98(Construct Signature)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[157],"tags":[],"class_list":["post-16989","post","type-post","status-publish","format-standard","hentry","category-typescript"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16989"}],"version-history":[{"count":3,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16989\/revisions"}],"predecessor-version":[{"id":16991,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16989\/revisions\/16991"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16989"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}