{"componentChunkName":"component---node-modules-stvad-gatsby-theme-garden-src-templates-roam-page-js","path":"/378b6","result":{"data":{"roamPage":{"title":"타입스크립트","childMdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"타입스크립트\"\n  }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), mdx(Block, {\n    id: \"Hem-7cjxe\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"소개\"\n    }, \"\\uC18C\\uAC1C\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"vpcHOG11V\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.typescriptlang.org/\"\n    }, \"https://www.typescriptlang.org/\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"94wa2qmFL\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://github.com/microsoft/TypeScript/\"\n    }, \"https://github.com/microsoft/TypeScript/\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"TalThNIu6\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/6e12b\",\n      \"title\": \"자바스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uC5D0 \\uD0C0\\uC785 \\uC2DC\\uC2A4\\uD15C\\uC744 \\uBD99\\uC774\\uB294 \\uC288\\uD37C\\uC14B \\uC5B8\\uC5B4\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"p3WEXZ33d\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"자료\"\n    }, \"\\uC790\\uB8CC\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"h-A51pAyV\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"interface-vs-types\"\n    }, \"Interface vs. Types\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"Y-jWtJZjf\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"Interface\\uAC00 type\\uC758 subset\\uC774\\uB77C \\uBCF4\\uB294 \\uAC83\\uC774 \\uD604\\uC7AC\\uC758 \\uB0B4 \\uC2DC\\uAC01\\uC774\\uB2E4.\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"Fr3iqhu--\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"interface\\uB294 \\uD56D\\uC0C1 \\uD2B9\\uC815\\uD55C \\uD615\\uD0DC\\uB97C \\uAC00\\uC9C4 object\\uC774\\uACE0, optional\\uD55C \\uD544\\uB4DC\\uB294 \\uC788\\uC744\\uC9C0\\uC5B8\\uC815 \\uD56D\\uC0C1 \\uC5B4\\uB5A4 \\uD544\\uB4DC\\uAC00 \\uC874\\uC7AC\\uD558\\uB294 \\uC9C0 \\uC815\\uC801\\uC73C\\uB85C \\uBD84\\uC11D \\uAC00\\uB2A5\\uD558\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Hn42M-FNJ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uB610\\uD55C \\uC774\\uB7EC\\uD55C \\uD2B9\\uC131\\uC5D0 \\uAE30\\uC778\\uD558\\uC5EC interface (\\uB610\\uB294 union \\uB4F1\\uC774 \\uC5C6\\uB294 \\uC21C\\uC218 object \\uD615\\uD0DC\\uC758 type)\\uC744 extend\\uD560 \\uC218 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"ndEPbper5\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uADF8 \\uC678\\uC5D0 Interface\\uB294 Declaration Merging\\uC774 \\uAC00\\uB2A5\\uD558\\uB2E4\\uB294 \\uD2B9\\uC218\\uD55C \\uC131\\uC9C8\\uC744 \\uAC00\\uC9C4\\uB2E4.\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"Xhi4RGBKV\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uAC04\\uB2E8\\uD788 \\uB9D0\\uD574, \\uAC19\\uC740 \\uC774\\uB984\\uC744 \\uAC00\\uC9C4 interface\\uB97C \\uB2E4\\uC2DC \\uC815\\uC758\\uD558\\uBA74 \\uD569\\uCCD0\\uC9C4\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"HS3tUrXsW\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.digitalocean.com/community/tutorials/typescript-interface-declaration-merging\"\n    }, \"https://www.digitalocean.com/community/tutorials/typescript-interface-declaration-merging\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"zrMkMAOqd\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces\"\n    }, \"https://www.typescriptlang.org/docs/handbook/declaration-merging.html\", mdx(\"a\", {\n      parentName: \"a\",\n      \"href\": \"/merging-interfaces\",\n      \"title\": \"hashtag_merging-interfaces\",\n      \"className\": \"hashtag internal-link\"\n    }, \"merging-interfaces\"), \"\"))),\n    mdxType: \"Block\"\n  }))))));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"자바스크립트\"\n  }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), mdx(Block, {\n    id: \"kn-72YiM_\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"tc39.es/ecma262/\"\n    }, \"ECMA-262\"), \"\\uC5D0 \\uC758\\uD574 \\uC815\\uC758\\uB41C ECMAScript\\uC758 \\uAD6C\\uD604. \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/474d4\",\n      \"title\": \"hashtag_프로그래밍 언어\",\n      \"className\": \" internal-link hashtag\"\n    }, \"\\uD504\\uB85C\\uADF8\\uB798\\uBC0D \\uC5B8\\uC5B4\"), \"\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"vX1W7hV8S\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"javascript-엔진\"\n    }, \"JavaScript \\uC5D4\\uC9C4\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"t7zXfbOmI\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/V8\",\n      \"title\": \"V8\",\n      \"className\": \" internal-link\"\n    }, \"V8\"), \"\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Acsz8mWgi\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/JavaScriptCore\",\n      \"title\": \"JavaScriptCore\",\n      \"className\": \" internal-link\"\n    }, \"JavaScriptCore\"), \"\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"MlY682Yc3\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://github.com/chakra-core/ChakraCore\"\n    }, \"ChakraCore\"), \" - \\uBCF8\\uB798 Edge \\uAC1C\\uBC1C\\uC5D0 \\uC4F0\\uC774\\uB2E4\\uAC00 Edge\\uAC00 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Chromium\",\n      \"title\": \"Chromium\",\n      \"className\": \" internal-link\"\n    }, \"Chromium\"), \" \\uAE30\\uBC18\\uC73C\\uB85C \\uC804\\uD658\\uB41C \\uB4A4 \\uCEE4\\uBBA4\\uB2C8\\uD2F0\\uC5D0\\uC11C \\uC784\\uBCA0\\uB4DC \\uC0AC\\uC6A9\\uB840\\uB97C \\uC704\\uD574 \\uAC1C\\uBC1C\\uB418\\uACE0 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"RiCwYmyPm\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"표준\"\n    }, \"\\uD45C\\uC900\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"VQs8DpeCi\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"ECMA-262\\uB294 ECMA International\\uC758 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://tc39.es/\"\n    }, \"TC39\"), \"\\uC5D0\\uC11C \\uAD00\\uB9AC\\uD558\\uB294 \\uD45C\\uC900\\uC774\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"-3gSzhN5Q\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://github.com/tc39/test262\"\n    }, \"Test262\"), \"\\uB97C \\uD1B5\\uD574 \\uC5B4\\uB5A4 \\uAD6C\\uD604\\uCCB4\\uAC00 ECMA-262 \\uD45C\\uC900\\uC5D0 \\uBD80\\uD569\\uD558\\uB294 \\uC9C0 \\uD655\\uC778\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"iaSziKiRa\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"proposals\"\n    }, \"Proposals\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"UeOCugAFE\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"ECMAScript\\uC5D0 \\uAE30\\uB2A5\\uC744 \\uCD94\\uAC00\\uD558\\uAE30 \\uC704\\uD574 \\uB0B4\\uB294 \\uC81C\\uC548\\uC11C.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"BBhZhOXTe\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"4\\uAC00\\uC9C0 \\uB2E8\\uACC4\\uAC00 \\uC788\\uC73C\\uBA70 \\uAC01 \\uB2E8\\uACC4(Stage)\\uAC00 \\uC758\\uBBF8\\uD558\\uB294 \\uBC14\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://tc39.es/process-document/\"\n    }, \"\\uC5EC\\uAE30\"), \"\\uC5D0\\uC11C \\uD655\\uC778\\uD560 \\uC218 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Ju4BKCiLi\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD604\\uC7AC \\uC81C\\uC548\\uB418\\uC5B4 TC39\\uAC00 \\uC778\\uC2DD\\uD558\\uACE0 \\uC788\\uB294 Proposal\\uC758 \\uBAA9\\uB85D\\uC740 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://github.com/tc39/proposals\"\n    }, \"\\uC5EC\\uAE30\"))),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"_Mo0Oagh_\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"버전\"\n    }, \"\\uBC84\\uC804\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"wZg2hMY6U\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"ECMA-262\\uB294 \\uBCF4\\uD1B5 1\\uB144\\uC5D0 \\uD55C \\uBC88\\uC529 \\uC81C\\uC548\\uB41C \\uAE30\\uB2A5 \\uC911 \\uCC44\\uD0DD\\uB41C \\uC81C\\uC548\\uC11C\\uB97C \\uD569\\uCCD0 \\uC815\\uC2DD \\uD45C\\uC900\\uC73C\\uB85C \\uC2B9\\uACA9\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"YdBbvNB76\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"2015\\uB144 \\uC774\\uC804\\uC5D0 \\uB098\\uC628 \\uD45C\\uC900\\uB4E4\\uC740 \\uC774\\uB7EC\\uD55C \\uD45C\\uC900 \\uC808\\uCC28\\uAC00 \\uBA85\\uD655\\uD788 \\uC218\\uB9BD\\uB418\\uAE30 \\uC804\\uC774\\uB77C \\uBC84\\uC804\\uC758 \\uC21C\\uC11C\\uB97C \\uB530\\uB77C\\uC11C ES1, ES3 \\uB4F1\\uC73C\\uB85C \\uBD80\\uB974\\uACE0 2015\\uB144\\uBD80\\uD130\\uB294 1\\uB144 \\uC8FC\\uAE30\\uB85C \\uADDC\\uCE59\\uC801\\uC73C\\uB85C \\uB098\\uC624\\uBBC0\\uB85C ES2015(ES6\\uACFC \\uAC19\\uC74C)\\uB85C \\uBD80\\uB978\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"aaszztHlh\",\n    content: mdx(React.Fragment, null, mdx(\"h3\", {\n      \"id\": \"es1\"\n    }, mdx(\"a\", {\n      parentName: \"h3\",\n      \"href\": \"https://www.ecma-international.org/wp-content/uploads/ECMA-262_1st_edition_june_1997.pdf\"\n    }, \"ES1\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"Mrmz3VOYf\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uAC00\\uC7A5 \\uAE30\\uBCF8\\uC774 \\uB41C \\uAC83.\")),\n    mdxType: \"Block\"\n  })))), mdx(Block, {\n    id: \"RgBx5KAj3\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"모듈-시스템\"\n    }, \"\\uBAA8\\uB4C8 \\uC2DC\\uC2A4\\uD15C\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"KaSy4N_2O\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD06C\\uAC8C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CommonJS\",\n      \"title\": \"CommonJS\",\n      \"className\": \" internal-link\"\n    }, \"CommonJS\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/ES-Modules\",\n      \"title\": \"ES Modules\",\n      \"className\": \" internal-link\"\n    }, \"ES Modules\"), \", AMD \\uB4F1\\uC774 \\uC874\\uC7AC\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"c_ZcXGUyY\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"asi\"\n    }, \"ASI\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"hF8jN-xBf\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"Automatic Semicolon Insertion\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"w-YaLCfAr\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/a6f84\",\n      \"title\": \"추가 바람\",\n      \"className\": \" internal-link\"\n    }, \"\\uCD94\\uAC00 \\uBC14\\uB78C\"), \"\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"qxYxELWxd\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://medium.com/@limsungmook/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%99%9C-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%84-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84%EA%B9%8C-997f985adb42\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\\uB294 \\uC65C \\uD504\\uB85C\\uD1A0\\uD0C0\\uC785\\uC744 \\uC120\\uD0DD\\uD588\\uC744\\uAE4C\"))),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamPage","id":"608eeafb-bef8-529d-8421-a1d62e6c4970","title":"자바스크립트","fields":{"slug":"/6e12b"}}}],"inboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"PdY4jfZTc\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC774\\uBBF8 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uAC00 \\uC815\\uC801 \\uD0C0\\uC774\\uD551\\uC758 \\uC0AC\\uC2E4\\uC0C1 \\uD45C\\uC900\\uC73C\\uB85C \\uC778\\uC9C0\\uB418\\uB294 \\uC0C1\\uD669\\uC5D0\\uC11C \\uBB38\\uBC95\\uB9CC \\uCD94\\uAC00\\uB41C\\uB2E4\\uACE0 \\uD558\\uBA74 \\uB098\\uC060 \\uAC74 \\uC5C6\\uB098 \\uC2F6\\uB354\\uB77C\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"c56daf14-a70e-5bda-aa9e-d55ccdeb2020","string":"이미 [[타입스크립트]]가 정적 타이핑의 사실상 표준으로 인지되는 상황에서 문법만 추가된다고 하면 나쁠 건 없나 싶더라","fields":{"parentPage":{"title":"June 9th, 2022","fields":{"slug":"/June-9th-2022"}},"slug":"/PdY4jfZTc"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"SdV6-DSUT\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC77C\\uBC18\\uC801\\uC73C\\uB85C\\uB294 \\uCD5C\\uC2E0 JS\\uB098 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uB85C \\uC791\\uC131\\uB41C \\uD30C\\uC77C\\uC744 \\uAD6C\\uD615 \\uBE0C\\uB77C\\uC6B0\\uC800\\uAC00 \\uC778\\uC2DD\\uD560 \\uC218 \\uC788\\uB294 \\uBB38\\uBC95\\uC73C\\uB85C \\uBCC0\\uD658\\uD574\\uC8FC\\uB294 \\uC791\\uC5C5\\uC744 \\uC218\\uD589\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"e379bad6-cf57-593b-8b55-5f30a7af04ce","string":"일반적으로는 최신 JS나 [[타입스크립트]]로 작성된 파일을 구형 브라우저가 인식할 수 있는 문법으로 변환해주는 작업을 수행한다.","fields":{"parentPage":{"title":"Babel","fields":{"slug":"/Babel"}},"slug":"/SdV6-DSUT"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"tQ0ZBBXXd\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uADFC\\uB370 \\uD604\\uC7AC\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/6e12b\",\n      \"title\": \"자바스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \" \\uBC0F \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \" \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/fab6f\",\n      \"title\": \"린터\",\n      \"className\": \" internal-link\"\n    }, \"\\uB9B0\\uD130\"), \" \\uB9CC \\uB428\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"cc78a574-5377-5053-a6b8-72fce56fa67a","string":"근데 현재는 [[자바스크립트]] 및 [[타입스크립트]] [[린터]] 만 됨","fields":{"parentPage":{"title":"Rome","fields":{"slug":"/Rome"}},"slug":"/tQ0ZBBXXd"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"b_tQYcX0b\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"Deno\\uAC00 run\\uC758 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"gD6R7t3Gl\"\n    }, \"\\uAE30\\uBCF8\\uAC12\\uC744 \\uD0C0\\uC785\\uCCB4\\uD0B9\\uC744 \\uC548 \\uD558\\uB294 \\uCABD\\uC73C\\uB85C \\uBCC0\\uACBD\\uD558\\uBA74\\uC11C\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/SWC\",\n      \"title\": \"SWC\",\n      \"className\": \" internal-link\"\n    }, \"SWC\"), \"\\uC640 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \" \\uCEF4\\uD30C\\uC77C\\uB7EC \\uAC04 \\uCC28\\uC774\\uB85C \\uC778\\uD574 \\uACB0\\uACFC \\uCC28\\uC774\\uAC00 \\uC0DD\\uAE40\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"175e1c41-49e3-53dd-a616-8cd68edf0c34","string":"Deno가 run의 [기본값을 타입체킹을 안 하는 쪽으로 변경하면서](((gD6R7t3Gl))), [[SWC]]와 [[타입스크립트]] 컴파일러 간 차이로 인해 결과 차이가 생김","fields":{"parentPage":{"title":"June 18th, 2022","fields":{"slug":"/June-18th-2022"}},"slug":"/b_tQYcX0b"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"eFNgY7z-G\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uC5D0\\uC11C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://stackoverflow.com/a/47842314/4154321\"\n    }, \"interface\\uB97C \\uC4F0\\uBA74 recursive type\\uC744 \\uB9CC\\uB4E4 \\uC218 \\uC788\\uB2E4\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"n85P-z2Cd\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC544\\uB9C8\\uB3C4 \\uC778\\uD130\\uD398\\uC774\\uC2A4\\uB294 unalias\\uD558\\uC9C0 \\uC54A\\uACE0 named type\\uCC98\\uB7FC \\uCDE8\\uAE09\\uD574\\uC11C \\uADF8\\uB7F0 \\uB4EF\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"086e30fe-9540-569c-a756-83b0d2b7b5bc","string":"[[타입스크립트]]에서 [interface를 쓰면 recursive type을 만들 수 있다](https://stackoverflow.com/a/47842314/4154321)","fields":{"parentPage":{"title":"June 17th, 2022","fields":{"slug":"/June-17th-2022"}},"slug":"/eFNgY7z-G"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"bEeZ2iLTQ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/6e12b\",\n      \"title\": \"자바스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \" \\uBC0F \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uC5D0\\uC11C \\uD3ED\\uB113\\uAC8C \\uC0AC\\uC6A9\\uB418\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/fab6f\",\n      \"title\": \"린터\",\n      \"className\": \" internal-link\"\n    }, \"\\uB9B0\\uD130\"), \"\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"9ef6040e-53ba-5fc7-91c9-698b08bcb680","string":"[[자바스크립트]] 및 [[타입스크립트]]에서 폭넓게 사용되는 [[린터]]","fields":{"parentPage":{"title":"ESLint","fields":{"slug":"/ESLint"}},"slug":"/bEeZ2iLTQ"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"TgntNW-eK\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://devblogs.microsoft.com/typescript/announcing-typescript-4-8-beta\"\n    }, \"Announcing TypeScript 4.8 Beta\"), \" \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"hashtag_타입스크립트\",\n      \"className\": \"hashtag internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"-Kzcc9U9D\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"improved-intersection-reduction-union-compatibility-and-narrowing\"\n    }, \"Improved Intersection Reduction, Union Compatibility, and Narrowing\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"xK_zAgVhd\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"{} | null | undefined\"), \" \\uACFC \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"unknown\"), \"\\uC744 \\uB3D9\\uCE58\\uB85C \\uCCD0\\uC90C\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Rv8gatqto\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"{}\"), \" \\uACFC\\uC758 intersection\\uC740 NonNullable\\uACFC \\uC720\\uC0AC\\uD558\\uAC8C \\uC791\\uB3D9\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"j7Up-2Lr5\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC804\\uBC18\\uC801\\uC73C\\uB85C \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"{}\"), \"\\uACFC \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"unknown\"), \" \\uC758 \\uAD00\\uACC4\\uC131\\uC774 \\uB354 \\uBA85\\uD655\\uD574\\uC9C4 \\uB290\\uB08C\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"NEuqI4v5n\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"improved-inference-for-infer-types-in-template-string-types\"\n    }, \"Improved Inference for \", mdx(\"inlineCode\", {\n      parentName: \"h2\"\n    }, \"infer\"), \" Types in Template String Types\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"EzOYFVBQ6\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"Template String Type \\uB0B4\\uC5D0\\uC11C \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"infer\"), \" \\uC2DC \\uC774\\uC81C \\uB9AC\\uD130\\uB7F4 \\uD0C0\\uC785\\uC744 \\uC7A1\\uC544\\uC90C\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"j17Z2E1eo\",\n    content: mdx(React.Fragment, null, mdx(\"h2\", {\n      \"id\": \"--build---watch-and---incremental-performance-improvements\"\n    }, \"--build, --watch, and --incremental Performance Improvements\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"lj--XC4Fr\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD1B5\\uC0C1\\uC801\\uC778 \\uD504\\uB860\\uD2B8\\uC5D4\\uB4DC \\uAC1C\\uBC1C \\uACFC\\uC815 \\uAE30\\uC900\\uC73C\\uB85C \\uBCF4\\uBA74 \\uAC00\\uC7A5 \\uC601\\uD5A5\\uC774 \\uB192\\uC740 \\uAC74 incremental\\uC77C \\uB4EF\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"PPmVjacIG\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uADF8 \\uC678\\uC5D0\\uB3C4 \\uC804\\uBC18\\uC801\\uC73C\\uB85C \\uC88B\\uC740 \\uAC83\\uB4E4\\uC774 \\uB9CE\\uC74C \\uC2E0\\uB09C\\uB2E4!\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"137c8e9c-dd91-5b1a-a3f6-94b554d90b85","string":"[Announcing TypeScript 4.8 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-4-8-beta) #타입스크립트","fields":{"parentPage":{"title":"June 22nd, 2022","fields":{"slug":"/June-22nd-2022"}},"slug":"/TgntNW-eK"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"HaEKvgzFA\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\\uB098 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uB97C \\uC815\\uB9D0 \\uB180\\uB77C\\uC6B4 \\uC2DC\\uAC04 \\uB0B4\\uC5D0 \\uBE4C\\uB4DC\\uD574\\uC11C \\uC0AC\\uC6A9\\uD560 \\uC218 \\uC788\\uAC8C \\uD574\\uC90C\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"d9b0213c-7125-5ae5-a3ad-c65e2afbb1b0","string":"자바스크립트나 [[타입스크립트]]를 정말 놀라운 시간 내에 빌드해서 사용할 수 있게 해줌","fields":{"parentPage":{"title":"Bun","fields":{"slug":"/Bun"}},"slug":"/HaEKvgzFA"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"vz1S8uqqi\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uAC00 \\uAD6C\\uD604\\uD55C decorator\\uC774 \\uB2E4\\uB974\\uACE0\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"fc1f8603-d8b0-5a76-bdc9-59b96990a7b7","string":"[[타입스크립트]]가 구현한 decorator이 다르고","fields":{"parentPage":{"title":"June 12th, 2022","fields":{"slug":"/June-12th-2022"}},"slug":"/vz1S8uqqi"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"Q9DzqOROA\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.typescriptcourse.com/\"\n    }, \"TypeScript Course\"), \" \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"hashtag_타입스크립트\",\n      \"className\": \"hashtag internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"13e80108-9bee-5908-bda8-03e3c1136441","string":"[TypeScript Course](https://www.typescriptcourse.com/) #타입스크립트","fields":{"parentPage":{"title":"June 9th, 2022","fields":{"slug":"/June-9th-2022"}},"slug":"/Q9DzqOROA"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"K7aS4A7gD\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/V8\",\n      \"title\": \"V8\",\n      \"className\": \" internal-link\"\n    }, \"V8\"), \" \\uC704\\uC5D0\\uC11C \\uB3D9\\uC791\\uD558\\uB098 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/378b6\",\n      \"title\": \"타입스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uD0C0\\uC785\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uB97C \\uB0B4\\uC7A5 \\uC9C0\\uC6D0\\uD55C\\uB2E4\\uB294 \\uC810\\uC774 \\uD070 \\uD2B9\\uC9D5.\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"a9489ca9-8302-5ef8-8c65-ff5a104e9fb3","string":"[[V8]] 위에서 동작하나 [[타입스크립트]]를 내장 지원한다는 점이 큰 특징.","fields":{"parentPage":{"title":"Deno","fields":{"slug":"/Deno"}},"slug":"/K7aS4A7gD"}}}]},"fields":{"slug":"/378b6"}}},"pageContext":{"id":"fc84975c-772c-5642-9681-f9451907ae08"}},"staticQueryHashes":["2131059104","2221750479","2468095761"]}