{"id":17100,"date":"2026-08-05T08:14:31","date_gmt":"2026-08-04T23:14:31","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=17100"},"modified":"2026-08-05T08:17:08","modified_gmt":"2026-08-04T23:17:08","slug":"typescript%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-tlp-%ec%98%88%ec%a0%9c-%eb%91%90-%ec%a0%95%ec%88%98%ec%9d%98-%ed%95%a9","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=17100","title":{"rendered":"TypeScript\ub97c \uc774\uc6a9\ud55c TLP \uc608\uc81c &#8211; \ub450 \uc815\uc218\uc758 \ud569"},"content":{"rendered":"<p>\ub450 \uc815\uc218\uc758 \ud569\uc744 \ud0c0\uc785 \ub808\ubca8(Type Level)\uc5d0\uc11c \uad6c\ud560 \uc218 \uc788\uc744\uae4c? \uc608\ub97c\ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\ntype Result1 = Add&lt;3, 4>; \/\/ \ud83d\udca1 \ud0c0\uc785 \ucd94\ub860 \uacb0\uacfc: 7\r\ntype Result2 = Add&lt;12, 8>; \/\/ \ud83d\udca1 \ud0c0\uc785 \ucd94\ub860 \uacb0\uacfc: 20\r\n<\/pre>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">Add<\/code>\ub77c\ub294 \ud0c0\uc785\uc744 \ud1b5\ud574 \ub450 \uc815\uc218\uc758 \ud569\uc744 \uacc4\uc0b0\ud569\ub2c8\ub2e4. <code class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">Add<\/code> \ud0c0\uc785\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">\r\n\/\/ N\uc758 \uae38\uc774\ub97c \uac00\uc9c0\ub294 \ud29c\ud50c \ud0c0\uc785\uc744 \uc0dd\uc131\ud558\ub294 \ud5ec\ud37c\r\ntype BuildTuple&lt;Length extends number, Arr extends unknown[] = []> =\r\n    Arr['length'] extends Length ? Arr : BuildTuple&lt;Length, [...Arr, unknown]>;\r\n\r\n\/\/ \ub450 \uc22b\uc790\uc758 \ubc30\uc5f4\uc744 \ud569\uccd0 \uc804\uccb4 \uae38\uc774\ub97c \uad6c\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \ub367\uc148 \uad6c\ud604\r\ntype Add&lt;A extends number, B extends number> =\r\n    [...BuildTuple&lt;A>, ...BuildTuple&lt;B>]['length'];\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub97c \ubd84\uc11d\ud560 \ub54c \ud544\uc694\ud55c \uc0ac\uc804 \uc9c0\uc2dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \ud29c\ud50c \ud0c0\uc785\uc758 \uae38\uc774\ub294 \ud0c0\uc785 \uc218\uc900\uc5d0\uc11c \ubbf8\ub9ac \uacc4\uc0b0\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc774\uace0 <code class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\">tupleType['length']<\/code>\ucc98\ub7fc \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub450 \uc815\uc218\uc758 \ud569\uc744 \ud0c0\uc785 \ub808\ubca8(Type Level)\uc5d0\uc11c \uad6c\ud560 \uc218 \uc788\uc744\uae4c? \uc608\ub97c\ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. type Result1 = Add&lt;3, 4>; \/\/ \ud83d\udca1 \ud0c0\uc785 \ucd94\ub860 \uacb0\uacfc: 7 type Result2 = Add&lt;12, 8>; \/\/ \ud83d\udca1 \ud0c0\uc785 \ucd94\ub860 \uacb0\uacfc: 20 Add\ub77c\ub294 \ud0c0\uc785\uc744 \ud1b5\ud574 \ub450 \uc815\uc218\uc758 \ud569\uc744 \uacc4\uc0b0\ud569\ub2c8\ub2e4. Add \ud0c0\uc785\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \/\/ N\uc758 \uae38\uc774\ub97c \uac00\uc9c0\ub294 \ud29c\ud50c \ud0c0\uc785\uc744 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=17100\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;TypeScript\ub97c \uc774\uc6a9\ud55c TLP \uc608\uc81c &#8211; \ub450 \uc815\uc218\uc758 \ud569&#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-17100","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\/17100","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=17100"}],"version-history":[{"count":5,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/17100\/revisions"}],"predecessor-version":[{"id":17102,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/17100\/revisions\/17102"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17100"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}