toshiki-notebook/application/vitepress-plugin-shiki-twoslash/api/multi-file.html

122 lines
77 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Multi-file | Toshiki's Note</title>
<meta name="description" content="Twoslash code examples aren't limited to creating a single file. You can write any file to the virtual file system used by TypeScript to power your code examples.">
<link rel="preload stylesheet" href="/assets/style.1276ae12.css" as="style">
<script type="module" src="/assets/app.da2b9cf1.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.ade46834.js">
<link rel="modulepreload" href="/assets/chunks/theme.2274efad.js">
<link rel="modulepreload" href="/assets/application_vitepress-plugin-shiki-twoslash_api_multi-file.md.17019a95.lean.js">
<link rel="stylesheet" href="https://cdnjs.toshiki.dev/ajax/libs/KaTeX/0.16.0/katex.min.css">
<link rel="stylesheet" href="https://cdnjs.toshiki.dev/ajax/libs/font-awesome/6.3.0/css/all.min.css">
<link rel="icon" href="/favicon.ico">
<meta name="author" content="Anda Toshiki">
<meta name="keywords" content="Toshiki, Anda Toshiki, andatoshiki, GitHub, GitHub action, Vitepress, Vite, Notebook, Knowledge base, Programming, Programming Notes, Academic, Personal, Notebook, Productivity, Journal, Note-taking, Markdown, Notepad, Organization, Tutorial">
<meta name="google-site-verification" content="lm7PNJiYSPEx1dMast1Xptc0Vk0cU06o-daZSsIgr2I">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="theme-color" content="#3c8772">
<meta property="og:type" content="website">
<meta property="og:locale" content="en-US">
<meta property="og:title" content="Toshiki&#39;s Note">
<meta property="og:description" content="Toshiki&#39;s web notebook served via Vitepress!">
<meta property="og:site" content="https://note.toshiki.dev">
<meta property="og:site_name" content="Toshiki&#39;s Note">
<meta property="og:image" content="https://note.toshiki.dev/og-cover.png">
<script>function siteruntime(){window.setTimeout("siteruntime()",1e3),X=new Date("8/24/2021 10:28:00"),Y=new Date,T=Y.getTime()-X.getTime(),M=24*60*60*1e3,a=T/M,A=Math.floor(a),b=(a-A)*24,B=Math.floor(b),c=(b-B)*60,C=Math.floor((b-B)*60),D=Math.floor((c-C)*60),siteruntime_span.innerHTML="This site has been running for: "+A+" day(s) "+B+" hour(s) "+C+" minute(s) "+D+" second(s)"}siteruntime();</script>
<script async="true" defer="true" data-website-id="86de8554-d4c9-4f2b-b62a-068b71241048" src="https://umami.toshiki.dev/umami.js"></script>
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-83f63849><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0eca8f1e></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0eca8f1e> Skip to content </a><!--]--><!----><header class="VPNav" data-v-83f63849 data-v-999a1a39><div class="VPNavBar has-sidebar" data-v-999a1a39 data-v-e99cf6bd><div class="container" data-v-e99cf6bd><div class="title" data-v-e99cf6bd><div class="VPNavBarTitle has-sidebar" data-v-e99cf6bd data-v-a8886b70><a class="title" href="/" data-v-a8886b70><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logos/logo.png" alt data-v-164d1caf><!--]--><!--[-->Toshiki&#39;s Note<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-e99cf6bd><div class="curtain" data-v-e99cf6bd></div><div class="content-body" data-v-e99cf6bd><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:&#39;Meta&#39;;" data-v-e99cf6bd><!--[--><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-e99cf6bd data-v-1817056a><span id="main-nav-aria-label" class="visually-hidden" data-v-1817056a>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/development/" tabindex="0" data-v-1817056a data-v-f28b94cc data-v-075865b7><!--[-->Development<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Academic <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>K-12</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/chemistry/index" data-v-6f715184 data-v-075865b7><!--[-->Chemistry<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/discrete-math/index" data-v-6f715184 data-v-075865b7><!--[-->Discrete Math.<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/literature/index" data-v-6f715184 data-v-075865b7><!--[-->Literature<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>Tools</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/physics/ipho-formulas-jpn/1" data-v-6f715184 data-v-075865b7><!--[-->Formulas for IPhO JPN.<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Application <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>Personal projects</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/application/markdown-it-katex/how-to-use" data-v-6f715184 data-v-075865b7><!--[-->markdown-it-katex<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/application/vitepress-plugin-shiki-twoslash/index" data-v-6f715184 data-v-075865b7><!--[-->vitepress-plugin-shiki-twoslash<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Save <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><a class="VPLink link" href="/save/reading/index" data-v-6f715184 data-v-075865b7><!--[-->Reading<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><a class="VPLink link" href="/academic/vocabulary/index" data-v-6f715184 data-v-075865b7><!--[-->Vocabulary<!--]--><!----></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-e99cf6bd data-v-72c0c02a><label title="toggle dark mode" data-v-72c0c02a data-v-cb74fac6><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-cb74fac6 data-v-9f7dbbcf><span class="check" data-v-9f7dbbcf><span class="icon" data-v-9f7dbbcf><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-cb74fac6><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-cb74fac6><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-e99cf6bd data-v-268ff66d data-v-65dbf981><!--[--><a class="VPSocialLink" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-e99cf6bd data-v-67546bb2 data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-4c03a652><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-4c03a652><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><!----><!--[--><!--[--><!----><div class="group" data-v-67546bb2><div class="item appearance" data-v-67546bb2><p class="label" data-v-67546bb2>Appearance</p><div class="appearance-action" data-v-67546bb2><label title="toggle dark mode" data-v-67546bb2 data-v-cb74fac6><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-cb74fac6 data-v-9f7dbbcf><span class="check" data-v-9f7dbbcf><span class="icon" data-v-9f7dbbcf><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-cb74fac6><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-cb74fac6><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div></div></div><div class="group" data-v-67546bb2><div class="item social-links" data-v-67546bb2><div class="VPSocialLinks social-links-list" data-v-67546bb2 data-v-65dbf981><!--[--><a class="VPSocialLink" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-e99cf6bd data-v-2314de5a><span class="container" data-v-2314de5a><span class="top" data-v-2314de5a></span><span class="middle" data-v-2314de5a></span><span class="bottom" data-v-2314de5a></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-83f63849 data-v-fa4746c0><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-fa4746c0><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-fa4746c0><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-fa4746c0>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-fa4746c0 data-v-f8dbb575><button data-v-f8dbb575>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-83f63849 data-v-0e47c5d5><div class="curtain" data-v-0e47c5d5></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-0e47c5d5><span class="visually-hidden" id="sidebar-aria-label" data-v-0e47c5d5> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-0e47c5d5><section class="VPSidebarItem level-0 collapsible" data-v-0e47c5d5 data-v-0cc45b6b><div class="item" role="button" tabindex="0" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><h2 class="text" data-v-0cc45b6b>Guide</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0cc45b6b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-0cc45b6b><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-0cc45b6b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Getting Started</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/guide/markdown-extensions" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Markdown Extensions</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/guide/custom-theme" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Using a Custom Theme</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-0e47c5d5><section class="VPSidebarItem level-0 collapsible has-active" data-v-0e47c5d5 data-v-0cc45b6b><div class="item" role="button" tabindex="0" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><h2 class="text" data-v-0cc45b6b>Features</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0cc45b6b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-0cc45b6b><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-0cc45b6b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/queries" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Queries</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/errors" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Errors</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/emit" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Emit</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/cutting" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Cutting</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/multi-file" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Multi-file</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/types" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>@types</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/annotations" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Meta Annotations</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/logging" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Logging</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/api/includes" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Includes</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-0e47c5d5><section class="VPSidebarItem level-0 collapsible" data-v-0e47c5d5 data-v-0cc45b6b><div class="item" role="button" tabindex="0" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><h2 class="text" data-v-0cc45b6b>Config</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0cc45b6b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-0cc45b6b><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-0cc45b6b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/config/reference" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Reference</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/application/vitepress-plugin-shiki-twoslash/config/flags" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>Compiler Flags</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-83f63849 data-v-bb292142><div class="VPDoc has-sidebar has-aside" data-v-bb292142 data-v-6c4a7022><!--[--><!--]--><div class="container" data-v-6c4a7022><div class="aside" data-v-6c4a7022><div class="aside-curtain" data-v-6c4a7022></div><div class="aside-container" data-v-6c4a7022><div class="aside-content" data-v-6c4a7022><div class="VPDocAside" data-v-6c4a7022 data-v-f77a9b1a><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-f77a9b1a data-v-ea95c6a2><div class="content" data-v-ea95c6a2><div class="outline-marker" data-v-ea95c6a2></div><div class="outline-title" data-v-ea95c6a2>TOC</div><nav aria-labelledby="doc-outline-aria-label" data-v-ea95c6a2><span class="visually-hidden" id="doc-outline-aria-label" data-v-ea95c6a2> Table of Contents for current page </span><ul class="root" data-v-ea95c6a2 data-v-74f66e6c><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-f77a9b1a></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--[--><!--[--><!--[--><div class="VPDocAsideSponsors"><div class="VPSponsors vp-sponsor aside"><!--[--><section class="vp-sponsor-section"><!----><div class="VPSponsorsGrid vp-sponsor-grid medium"><!--[--><div class="vp-sponsor-grid-item"><a class="vp-sponsor-grid-link" target="_blank" rel="sponsored noopener"><article class="vp-sponsor-grid-box"><h4 class="visually-hidden"></h4><img class="vp-sponsor-grid-image" src="https://jsd.toshiki.dev/gh/andatoshiki/toshiki-notebook@master/assets/logo/sponsor/telegram.png"></article></a></div><!--]--></div></section><!--]--></div></div><!--]--><!--]--><!--]--><!--]--></div></div></div></div><div class="content" data-v-6c4a7022><div class="content-container" data-v-6c4a7022><!--[--><!--]--><!----><main class="main" data-v-6c4a7022><div style="position:relative;" class="vp-doc _application_vitepress-plugin-shiki-twoslash_api_multi-file" data-v-6c4a7022><div><h1 id="multi-file" tabindex="-1">Multi-file <a class="header-anchor" href="#multi-file" aria-label="Permalink to &quot;Multi-file&quot;"></a></h1><p>Twoslash code examples aren&#39;t limited to creating a single file, by using <code>// @filename: [file]</code> you can write any file to the virtual file system used by TypeScript to power your code examples.</p><h2 id="filename-file" tabindex="-1"><code>@filename: [file]</code> <a class="header-anchor" href="#filename-file" aria-label="Permalink to &quot;`@filename: [file]`&quot;"></a></h2><p>Most of the time, you don&#39;t need to think about the underlaying virtual file system in a code example, but when you have imports between them it becomes important to know. Twoslash will default to creating an <code>index.[type]</code> based on the langauge passed to the code example:</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-I1kRa" id="tab-FduIonP" checked="checked"><label for="tab-FduIonP">output</label><input type="radio" name="group-I1kRa" id="tab-BH3_p5I"><label for="tab-BH3_p5I">markdown</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#586E75;">// I&#39;m index.ts</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#93A1A1;">// I&#39;m index.ts</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```ts twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// I&#39;m index.ts</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```ts twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// I&#39;m index.ts</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div></div></div><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-dLlHq" id="tab-8F-85Pp" checked="checked"><label for="tab-8F-85Pp">output</label><input type="radio" name="group-dLlHq" id="tab-kJ1YPJo"><label for="tab-kJ1YPJo">markdown</label></div><div class="blocks"><div class="language-tsx vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">tsx</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">tsx</div><div class="code-container"><code><div class="line"><span style="color:#586E75;">// I&#39;m index.tsx</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">tsx</div><div class="code-container"><code><div class="line"><span style="color:#93A1A1;">// I&#39;m index.tsx</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```tsx twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// I&#39;m index.tsx</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```tsx twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// I&#39;m index.tsx</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div></div></div><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-hct5W" id="tab-NUJGLf-" checked="checked"><label for="tab-NUJGLf-">output</label><input type="radio" name="group-hct5W" id="tab-MmRIt2x"><label for="tab-MmRIt2x">markdown</label></div><div class="blocks"><div class="language-js vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">js</div><div class="code-container"><code><div class="line"><span style="color:#586E75;">// I&#39;m index.tjs</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">js</div><div class="code-container"><code><div class="line"><span style="color:#93A1A1;">// I&#39;m index.tjs</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```js twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// I&#39;m index.tjs</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```js twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// I&#39;m index.tjs</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div></div></div><p>Then until Twoslash hits another <code>// @filename: [file]</code>, the parser keeps adding new lines into the same file. After seeing <code>@filename</code> Twoslash creates a new virtual file-system file and adds the new lines to that. You can&#39;t edit a file after it was created, but you can overwrite it.</p><p>It can be any file. For example, if you want to quickly fake a node module:</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-3vWGP" id="tab-zUAoaAN" checked="checked"><label for="tab-zUAoaAN">output</label><input type="radio" name="group-3vWGP" id="tab-OlIIs69"><label for="tab-OlIIs69">markdown</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#586E75;">// @filename: node_modules/@types/mylib/index.d.ts</span></div><div class="line"><span style="color:#859900;">export</span><span style="color:#839496;"> </span><span style="color:#93A1A1;">function</span><span style="color:#839496;"> </span><span style="color:#268BD2;"><data-lsp lsp="function doit(): string">doit</data-lsp></span><span style="color:#839496;">()</span><span style="color:#859900;">:</span><span style="color:#839496;"> </span><span style="color:#859900;">string</span></div><div class="line"> </div><div class="line"><span style="color:#586E75;">// @filename: index.ts</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> { </span><span style="color:#268BD2;"><data-lsp lsp="(alias) function doit(): string
import doit">doit</data-lsp></span><span style="color:#839496;"> } </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&#39;mylib&#39;</span></div><div class="line"><span style="color:#268BD2;"><data-lsp lsp="var console: Console">console</data-lsp></span><span style="color:#839496;">.</span><span style="color:#268BD2;"><data-lsp lsp="(method) Console.log(...data: any[]): void">log</data-lsp></span><span style="color:#839496;">(</span><span style="color:#268BD2;"><data-lsp lsp="(alias) function doit(): string
import doit">doit</data-lsp></span><span style="color:#839496;">)</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#93A1A1;">// @filename: node_modules/@types/mylib/index.d.ts</span></div><div class="line"><span style="color:#859900;">export</span><span style="color:#657B83;"> </span><span style="color:#586E75;">function</span><span style="color:#657B83;"> </span><span style="color:#268BD2;"><data-lsp lsp="function doit(): string">doit</data-lsp></span><span style="color:#657B83;">()</span><span style="color:#859900;">:</span><span style="color:#657B83;"> </span><span style="color:#859900;">string</span></div><div class="line"> </div><div class="line"><span style="color:#93A1A1;">// @filename: index.ts</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> { </span><span style="color:#268BD2;"><data-lsp lsp="(alias) function doit(): string
import doit">doit</data-lsp></span><span style="color:#657B83;"> } </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&#39;mylib&#39;</span></div><div class="line"><span style="color:#268BD2;"><data-lsp lsp="var console: Console">console</data-lsp></span><span style="color:#657B83;">.</span><span style="color:#268BD2;"><data-lsp lsp="(method) Console.log(...data: any[]): void">log</data-lsp></span><span style="color:#657B83;">(</span><span style="color:#268BD2;"><data-lsp lsp="(alias) function doit(): string
import doit">doit</data-lsp></span><span style="color:#657B83;">)</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>This code example sets up the types for a non-existent npm module, and TypeScript picks it up as the definitions in the same way it would in a non-virtual TypeScript project.</p><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```ts twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: node_modules/@types/mylib/index.d.ts</span></span>
<span class="line"><span style="color:#859900;">export</span><span style="color:#839496;"> </span><span style="color:#93A1A1;font-weight:bold;">function</span><span style="color:#839496;"> </span><span style="color:#268BD2;">doit</span><span style="color:#839496;">()</span><span style="color:#859900;">:</span><span style="color:#839496;"> </span><span style="color:#859900;">string</span></span>
<span class="line"></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: index.ts</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> { </span><span style="color:#268BD2;">doit</span><span style="color:#839496;"> } </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&#39;mylib&#39;</span></span>
<span class="line"><span style="color:#268BD2;">console</span><span style="color:#839496;">.</span><span style="color:#268BD2;">log</span><span style="color:#839496;">(</span><span style="color:#268BD2;">doit</span><span style="color:#839496;">)</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```ts twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: node_modules/@types/mylib/index.d.ts</span></span>
<span class="line"><span style="color:#859900;">export</span><span style="color:#657B83;"> </span><span style="color:#586E75;font-weight:bold;">function</span><span style="color:#657B83;"> </span><span style="color:#268BD2;">doit</span><span style="color:#657B83;">()</span><span style="color:#859900;">:</span><span style="color:#657B83;"> </span><span style="color:#859900;">string</span></span>
<span class="line"></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: index.ts</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> { </span><span style="color:#268BD2;">doit</span><span style="color:#657B83;"> } </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&#39;mylib&#39;</span></span>
<span class="line"><span style="color:#268BD2;">console</span><span style="color:#657B83;">.</span><span style="color:#268BD2;">log</span><span style="color:#657B83;">(</span><span style="color:#268BD2;">doit</span><span style="color:#657B83;">)</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br></div></div></div></div><p>You can also set up a JSON object which can be imported in a TypeScript file:</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-69-6U" id="tab-5mshVyA" checked="checked"><label for="tab-5mshVyA">output</label><input type="radio" name="group-69-6U" id="tab-LYLEP0n"><label for="tab-LYLEP0n">markdown</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#586E75;">// @filename: app.json</span></div><div class="line"><span style="color:#839496;">{ </span><span style="color:#2AA198;">&quot;version&quot;</span><span style="color:#839496;">: </span><span style="color:#2AA198;">&quot;23.2.3&quot;</span><span style="color:#839496;"> }</span></div><div class="line"> </div><div class="line"><span style="color:#586E75;">// @filename: index.ts</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;"><data-lsp lsp="import appSettings">appSettings</data-lsp></span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;./app.json&quot;</span></div><div class="line"><span style="color:#268BD2;"><data-lsp lsp="import appSettings">appSettings</data-lsp></span><span style="color:#839496;">.</span><span style="color:#268BD2;"><data-lsp lsp="(property) &quot;version&quot;: string" style="border-bottom:solid 2px lightgrey;">version</data-lsp></span></div><div class="meta-line"><span class="popover-prefix"> </span><span class="popover"><div class="arrow"></div>(property) &quot;version&quot;: string</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#93A1A1;">// @filename: app.json</span></div><div class="line"><span style="color:#657B83;">{ </span><span style="color:#2AA198;">&quot;version&quot;</span><span style="color:#657B83;">: </span><span style="color:#2AA198;">&quot;23.2.3&quot;</span><span style="color:#657B83;"> }</span></div><div class="line"> </div><div class="line"><span style="color:#93A1A1;">// @filename: index.ts</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;"><data-lsp lsp="import appSettings">appSettings</data-lsp></span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;./app.json&quot;</span></div><div class="line"><span style="color:#268BD2;"><data-lsp lsp="import appSettings">appSettings</data-lsp></span><span style="color:#657B83;">.</span><span style="color:#268BD2;"><data-lsp lsp="(property) &quot;version&quot;: string" style="border-bottom:solid 2px lightgrey;">version</data-lsp></span></div><div class="meta-line"><span class="popover-prefix"> </span><span class="popover"><div class="arrow"></div>(property) &quot;version&quot;: string</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```ts twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @resolveJsonModule</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: app.json</span></span>
<span class="line"><span style="color:#839496;">{ </span><span style="color:#2AA198;">&quot;version&quot;</span><span style="color:#839496;">: </span><span style="color:#2AA198;">&quot;23.2.3&quot;</span><span style="color:#839496;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: index.ts</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;">appSettings</span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;./app.json&quot;</span></span>
<span class="line"><span style="color:#268BD2;">appSettings</span><span style="color:#839496;">.</span><span style="color:#268BD2;">version</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// ^?</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```ts twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @resolveJsonModule</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: app.json</span></span>
<span class="line"><span style="color:#657B83;">{ </span><span style="color:#2AA198;">&quot;version&quot;</span><span style="color:#657B83;">: </span><span style="color:#2AA198;">&quot;23.2.3&quot;</span><span style="color:#657B83;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: index.ts</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;">appSettings</span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;./app.json&quot;</span></span>
<span class="line"><span style="color:#268BD2;">appSettings</span><span style="color:#657B83;">.</span><span style="color:#268BD2;">version</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// ^?</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br></div></div></div></div><p>Finally, the following code allows importing non-TypeScript content. There is a <code>.d.ts</code> file which globally says &#39;md files are OK to import&#39; and &#39;the module &quot;react&quot; exists, but don&#39;t worry about the details&#39;.</p><p>Then for a user, they only see the imports and exports inside <code>index.tsx</code>.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-TbIoe" id="tab-znA5qxh" checked="checked"><label for="tab-znA5qxh">output</label><input type="radio" name="group-TbIoe" id="tab-_8_5N5F"><label for="tab-_8_5N5F">markdown</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki solarized-dark twoslash lsp" style="background-color:#002B36;color:#839496;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;"><data-lsp lsp="(alias) module &quot;react&quot;
import React">React</data-lsp></span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;"><data-lsp lsp="import MultiFileDocs">MultiFileDocs</data-lsp></span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;./MultiFileDocs.mdx&quot;</span></div><div class="line"> </div><div class="line"><span style="color:#859900;">export</span><span style="color:#839496;"> </span><span style="color:#859900;">default</span><span style="color:#839496;"> () </span><span style="color:#93A1A1;">=&gt;</span><span style="color:#839496;"> &lt;</span><span style="color:#CB4B16;"><data-lsp lsp="import MultiFileDocs">MultiFileDocs</data-lsp></span><span style="color:#839496;">/&gt;</span></div></code></div></pre><pre class="shiki solarized-light twoslash lsp" style="background-color:#FDF6E3;color:#657B83;" active="true"><div class="language-id">ts</div><div class="code-container"><code><div class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;"><data-lsp lsp="(alias) module &quot;react&quot;
import React">React</data-lsp></span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></div><div class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;"><data-lsp lsp="import MultiFileDocs">MultiFileDocs</data-lsp></span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;./MultiFileDocs.mdx&quot;</span></div><div class="line"> </div><div class="line"><span style="color:#859900;">export</span><span style="color:#657B83;"> </span><span style="color:#859900;">default</span><span style="color:#657B83;"> () </span><span style="color:#586E75;">=&gt;</span><span style="color:#657B83;"> &lt;</span><span style="color:#CB4B16;"><data-lsp lsp="import MultiFileDocs">MultiFileDocs</data-lsp></span><span style="color:#657B83;">/&gt;</span></div></code></div></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-md vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">```ts twoslash</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: ambient.d.ts</span></span>
<span class="line"><span style="color:#93A1A1;font-weight:bold;">declare</span><span style="color:#839496;"> </span><span style="color:#93A1A1;font-weight:bold;">module</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&#39;*.mdx&#39;</span><span style="color:#839496;"> {</span></span>
<span class="line"><span style="color:#839496;"> </span><span style="color:#859900;">export</span><span style="color:#839496;"> </span><span style="color:#859900;">default</span><span style="color:#839496;"> </span><span style="color:#268BD2;">any</span></span>
<span class="line"><span style="color:#839496;">}</span></span>
<span class="line"><span style="color:#93A1A1;font-weight:bold;">declare</span><span style="color:#839496;"> </span><span style="color:#93A1A1;font-weight:bold;">module</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: MultiFileDocs.mdx</span></span>
<span class="line"><span style="color:#839496;">## </span><span style="color:#CB4B16;">Hello</span><span style="color:#839496;"> </span><span style="color:#CB4B16;">world</span></span>
<span class="line"></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// @filename: index.tsx</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;">// ---cut---</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;">React</span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#839496;"> </span><span style="color:#268BD2;">MultiFileDocs</span><span style="color:#839496;"> </span><span style="color:#859900;">from</span><span style="color:#839496;"> </span><span style="color:#2AA198;">&quot;./MultiFileDocs.mdx&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#859900;">export</span><span style="color:#839496;"> </span><span style="color:#859900;">default</span><span style="color:#839496;"> () </span><span style="color:#93A1A1;font-weight:bold;">=&gt;</span><span style="color:#839496;"> &lt;</span><span style="color:#CB4B16;">MultiFileDocs</span><span style="color:#839496;">/&gt;</span></span>
<span class="line"><span style="color:#839496;">```</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">```ts twoslash</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: ambient.d.ts</span></span>
<span class="line"><span style="color:#586E75;font-weight:bold;">declare</span><span style="color:#657B83;"> </span><span style="color:#586E75;font-weight:bold;">module</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&#39;*.mdx&#39;</span><span style="color:#657B83;"> {</span></span>
<span class="line"><span style="color:#657B83;"> </span><span style="color:#859900;">export</span><span style="color:#657B83;"> </span><span style="color:#859900;">default</span><span style="color:#657B83;"> </span><span style="color:#268BD2;">any</span></span>
<span class="line"><span style="color:#657B83;">}</span></span>
<span class="line"><span style="color:#586E75;font-weight:bold;">declare</span><span style="color:#657B83;"> </span><span style="color:#586E75;font-weight:bold;">module</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: MultiFileDocs.mdx</span></span>
<span class="line"><span style="color:#657B83;">## </span><span style="color:#CB4B16;">Hello</span><span style="color:#657B83;"> </span><span style="color:#CB4B16;">world</span></span>
<span class="line"></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// @filename: index.tsx</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;">// ---cut---</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;">React</span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;react&quot;</span></span>
<span class="line"><span style="color:#859900;">import</span><span style="color:#657B83;"> </span><span style="color:#268BD2;">MultiFileDocs</span><span style="color:#657B83;"> </span><span style="color:#859900;">from</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">&quot;./MultiFileDocs.mdx&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#859900;">export</span><span style="color:#657B83;"> </span><span style="color:#859900;">default</span><span style="color:#657B83;"> () </span><span style="color:#586E75;font-weight:bold;">=&gt;</span><span style="color:#657B83;"> &lt;</span><span style="color:#CB4B16;">MultiFileDocs</span><span style="color:#657B83;">/&gt;</span></span>
<span class="line"><span style="color:#657B83;">```</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br></div></div></div></div></div></div></main><footer class="VPDocFooter" data-v-6c4a7022 data-v-b5edbda4><!--[--><!--[--><!--[--><!--[--><!----><!--]--><!--]--><!--]--><!--]--><div class="edit-info" data-v-b5edbda4><div class="edit-link" data-v-b5edbda4><a class="VPLink link edit-link-button" href="https://github.com/andatoshiki/toshiki-notebook/edit/master/docs/application/vitepress-plugin-shiki-twoslash/api/multi-file.md" target="_blank" rel="noreferrer" data-v-b5edbda4 data-v-075865b7><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-b5edbda4><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><div class="last-updated" data-v-b5edbda4><p class="VPLastUpdated" data-v-b5edbda4 data-v-00fbdbd8>Last updated: <time datetime="2023-06-11T16:31:44.000Z" data-v-00fbdbd8></time></p></div></div><div class="prev-next" data-v-b5edbda4><div class="pager" data-v-b5edbda4><a class="pager-link prev" href="/application/vitepress-plugin-shiki-twoslash/api/cutting" data-v-b5edbda4><span class="desc" data-v-b5edbda4>Previous page</span><span class="title" data-v-b5edbda4>Cutting</span></a></div><div class="has-prev pager" data-v-b5edbda4><a class="pager-link next" href="/application/vitepress-plugin-shiki-twoslash/api/types" data-v-b5edbda4><span class="desc" data-v-b5edbda4>Next page</span><span class="title" data-v-b5edbda4>@types</span></a></div></div></footer><!--[--><!--[--><!--[--><div id="comment-container"></div><!--]--><!--]--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-83f63849 data-v-02da8605><div class="container" data-v-02da8605><p class="message" data-v-02da8605>Wrote with <i class="heart fa fa-heart fa-xs fa-beat"></i> and <i class="coffee fa fa-coffee fa-xs" aria-hidden="true"></i> by <a href="https://toshiki.dev">Anda Toshiki</a> at <code>root@andatoshiki:/~</code></p><p class="copyright" data-v-02da8605>Copyright © 2023-2023 <a href="https://github.com/andatoshiki">Anda Toshiki</a>, <a href="https://github.com/lolilab">LoliLab</a> and <a href="https://github.com/toshikidev">Toshiki Dev</a> present <br /><span id="siteruntime_span"></span></p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"academic_literature_writing_methods-of-development.md\":\"fa334491\",\"academic_physics_index.md\":\"179bc2be\",\"academic_chemistry_problems_02-20.md\":\"e7d9ea28\",\"academic_literature_index.md\":\"d4a64b04\",\"academic_chemistry_problems_03-02-3.md\":\"00371f85\",\"academic_chemistry_index.md\":\"8f029230\",\"academic_physics_ipho-formulas-jpn_11.md\":\"70ffd17b\",\"academic_chemistry_problems_03-02-1.md\":\"9a20b37e\",\"academic_physics_ipho-formulas-jpn_12.md\":\"33733225\",\"academic_chemistry_problems_03-02-2.md\":\"ee7a0eb3\",\"academic_physics_ipho-formulas-jpn_10.md\":\"29cd43c5\",\"academic_chemistry_notes_12-5.md\":\"0a46ad21\",\"academic_physics_ipho-formulas-jpn_1.md\":\"32316034\",\"academic_physics_ipho-formulas-jpn_2.md\":\"8f8489a2\",\"academic_physics_ipho-formulas-jpn_13.md\":\"7692cafc\",\"academic_physics_ipho-formulas-jpn_3.md\":\"e2c7167a\",\"academic_physics_ipho-formulas-jpn_6.md\":\"5662a567\",\"academic_vocabulary_index.md\":\"73c3a83a\",\"academic_physics_ipho-formulas-jpn_4.md\":\"06e7642a\",\"academic_physics_ipho-formulas-jpn_7.md\":\"bd124413\",\"academic_physics_ipho-formulas-jpn_8.md\":\"82e691f7\",\"application_markdown-it-katex_tips.md\":\"45ad2e61\",\"academic_vocabulary_2023_02_2023-02-27.md\":\"e74d1534\",\"application_vitepress-plugin-shiki-twoslash_api_annotations.md\":\"82f2b67b\",\"application_vitepress-plugin-shiki-twoslash_api_cutting.md\":\"cc3fd6d2\",\"application_vitepress-plugin-shiki-twoslash_api_emit.md\":\"430264c4\",\"application_vitepress-plugin-shiki-twoslash_api_errors.md\":\"ccfe3696\",\"application_vitepress-plugin-shiki-twoslash_api_logging.md\":\"d8ec205f\",\"application_vitepress-plugin-shiki-twoslash_api_multi-file.md\":\"17019a95\",\"application_vitepress-plugin-shiki-twoslash_guide_custom-theme.md\":\"450f41d8\",\"application_vitepress-plugin-shiki-twoslash_guide_markdown-extensions.md\":\"8bd71f4d\",\"application_vitepress-plugin-shiki-twoslash_index.md\":\"3b4dc743\",\"development_aws_readme.md\":\"b77eaf42\",\"development_aws_acknowledgement.md\":\"0c2f3707\",\"development_aws_appendix.md\":\"2863b508\",\"development_aws_assignments.md\":\"07944589\",\"development_aws_author.md\":\"f32aa812\",\"development_aws_aws-batch.md\":\"a37aad85\",\"development_aws_aws-get-started.md\":\"b29b2b9d\",\"development_aws_closing.md\":\"c885a37b\",\"development_aws_cloud.md\":\"cadae637\",\"development_aws_docker-system.md\":\"948e5a05\",\"development_aws_handson-ec2.md\":\"91a78e41\",\"academic_physics_ipho-formulas-jpn_9.md\":\"ac62208b\",\"development_aws_handson-jupyter.md\":\"f03ebc64\",\"development_aws_handson-qabot.md\":\"11432875\",\"application_markdown-it-katex_how-to-use.md\":\"38bd1741\",\"save_reading_outliers_3.md\":\"7588bb30\",\"development_aws_handson-serverless.md\":\"36bf47e2\",\"development_aws_introduction.md\":\"d09efdc9\",\"development_aws_license.md\":\"2e0d90b9\",\"development_aws_scientific-computing.md\":\"e29a77a0\",\"development_aws_serverless.md\":\"29efcc8b\",\"application_vitepress-plugin-shiki-twoslash_api_types.md\":\"c15cd4e0\",\"development_file-naming-convention.md\":\"ac65da7c\",\"development_rclone-for-r2.md\":\"d6bab77f\",\"getting-started.md\":\"d0e87bd5\",\"index.md\":\"0d1514af\",\"javascript_notes_1_1-1.md\":\"fb84c599\",\"javascript_notes_1_1-2.md\":\"fba7f01d\",\"jp_index.md\":\"4cc0b1f9\",\"roadmap.md\":\"bbee6927\",\"save_reading_index.md\":\"3503a860\",\"save_reading_outliers_1.md\":\"471fe8d5\",\"save_reading_outliers_2.md\":\"52d15a84\",\"save_reading_outliers_4.md\":\"da114e4b\",\"application_vitepress-plugin-shiki-twoslash_api_queries.md\":\"cfe328d1\",\"development_aws_webserver.md\":\"d5da9098\",\"application_vitepress-plugin-shiki-twoslash_config_flags.md\":\"a6f0c039\",\"development_aws_handson-bashoutter.md\":\"dd71e78c\",\"academic_physics_ipho-formulas-jpn_5.md\":\"2dd9bd9c\",\"application_vitepress-plugin-shiki-twoslash_config_reference.md\":\"32aadc85\",\"application_vitepress-plugin-shiki-twoslash_api_includes.md\":\"6fbcae18\",\"development_aws_main.md\":\"592c49ea\",\"application_markdown-it-katex_support-function.md\":\"c511ad93\",\"application_markdown-it-katex_support-table.md\":\"04221b29\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Toshiki's Note\",\"description\":\"Toshiki's web notebook served via Vitepress!\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Development\",\"link\":\"/development/\"},{\"text\":\"Academic\",\"items\":[{\"text\":\"K-12\",\"items\":[{\"text\":\"Chemistry\",\"link\":\"/academic/chemistry/index\",\"activeMatch\":\"/academic/chemistry/\"},{\"text\":\"Discrete Math.\",\"link\":\"/discrete-math/index\",\"activeMatch\":\"/categories/fragments/\"},{\"text\":\"Literature\",\"link\":\"/academic/literature/index\",\"activeMatch\":\"/academic/literature/\"}]},{\"text\":\"Tools\",\"items\":[{\"text\":\"Formulas for IPhO JPN.\",\"link\":\"/academic/physics/ipho-formulas-jpn/1\",\"activeMatch\":\"/academic/physics/ipho-formulas-jpn/\"}]},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"}],\"activeMatch\":\"/academic/\"},{\"text\":\"Application\",\"items\":[{\"text\":\"Personal projects\",\"items\":[{\"text\":\"markdown-it-katex\",\"link\":\"/application/markdown-it-katex/how-to-use\",\"activeMatch\":\"/application/markdown-it-katex/\"},{\"text\":\"vitepress-plugin-shiki-twoslash\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/index\",\"activeMatch\":\"/application/vitepress-plugin-shiki-twoslash/index\"}]}],\"activeMatch\":\"/save/\"},{\"text\":\"Save\",\"items\":[{\"text\":\"Reading\",\"link\":\"/save/reading/index\",\"activeMatch\":\"/save/reading/\"},{\"text\":\"Vocabulary\",\"link\":\"/academic/vocabulary/index\",\"activeMatch\":\"/academic/vocabulary/\"}],\"activeMatch\":\"/save/\"}],\"sidebar\":{\"/development/\":[{\"text\":\"Wiki Database\",\"collapsed\":false,\"items\":[{\"text\":\"File Naming Convention\",\"link\":\"/development/file-naming-convention\"}]}],\"/academic/chemistry/\":[{\"text\":\"Textbook\",\"collapsed\":true,\"items\":[{\"text\":\"12-5: Reaction Mechanism\",\"link\":\"/academic/chemistry/notes/12-5\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]},{\"text\":\"Kinetics\",\"collapsed\":false,\"items\":[{\"text\":\"Rate determining steps\",\"link\":\"/academic/chemistry/notes/kinetics/rate-determining-step\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]},{\"text\":\"Problems & Solutions\",\"collapsed\":true,\"items\":[{\"text\":\"Problem: 02-20\",\"link\":\"/academic/chemistry/problems/02-20\"},{\"text\":\"Problem: 03-02-1\",\"link\":\"/academic/chemistry/problems/03-02-1\"},{\"text\":\"Problem: 03-02-2\",\"link\":\"/academic/chemistry/problems/03-02-2\"},{\"text\":\"Problem: 03-02-3\",\"link\":\"/academic/chemistry/problems/03-02-3\"}]}],\"/academic/physics\":[{\"text\":\"IPhO Formulas: JP Ver.\",\"collapsed\":false,\"items\":[{\"text\":\"1: 数学\",\"link\":\"/academic/physics/ipho-formulas-jpn/1\"},{\"text\":\"2: 一般的な推奨事\",\"link\":\"/academic/physics/ipho-formulas-jpn/2\"},{\"text\":\"3: 運動学\",\"link\":\"/academic/physics/ipho-formulas-jpn/3\"},{\"text\":\"4: 力学\",\"link\":\"/academic/physics/ipho-formulas-jpn/4\"},{\"text\":\"5: 振動と波\",\"link\":\"/academic/physics/ipho-formulas-jpn/5\"},{\"text\":\"6: 幾何光学,測光\",\"link\":\"/academic/physics/ipho-formulas-jpn/6\"},{\"text\":\"7: 波動光学\",\"link\":\"/academic/physics/ipho-formulas-jpn/7\"},{\"text\":\"8: 電気回路\",\"link\":\"/academic/physics/ipho-formulas-jpn/8\"},{\"text\":\"9: 電磁気学\",\"link\":\"/academic/physics/ipho-formulas-jpn/9\"},{\"text\":\"10: 熱力\",\"link\":\"/academic/physics/ipho-formulas-jpn/10\"},{\"text\":\"11: 量子力学\",\"link\":\"/academic/physics/ipho-formulas-jpn/11\"},{\"text\":\"12: Keplerの法則\",\"link\":\"/academic/physics/ipho-formulas-jpn/12\"},{\"text\":\"13: 相対性理論\",\"link\":\"/academic/physics/ipho-formulas-jpn/13\"}]}],\"/academic/vocabulary/\":[{\"text\":\"Vocabulary\",\"collapsed\":true,\"items\":[{\"text\":\"2023-02-27\",\"link\":\"/academic/vocabulary/2023/02/2023-02-27\"}]}],\"/academic/literature/\":[{\"text\":\"Writing Resources\",\"collapsed\":true,\"items\":[{\"text\":\"Patterns of Organization and Methods of Development\",\"link\":\"/academic/literature/writing/methods-of-development\"}]}],\"/javascript/\":[{\"text\":\"1: Basic JavaScript-Value, Variables, and Control Flow\",\"collapsed\":true,\"items\":[{\"text\":\"1-1: Numbers\",\"link\":\"/javascript/notes/1/1-1\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]}],\"/save/reading/\":[{\"text\":\"Outliers\",\"collapsed\":true,\"items\":[{\"text\":\"Introduction & Chapter 1: The Roseto Mystery\",\"link\":\"/save/reading/outliers/1\"},{\"text\":\"Chapter 2: The 10,000-Hour Rule\",\"link\":\"/save/reading/outliers/2\"},{\"text\":\"Chapter 3: The Trouble with Geniuses, Part 1\",\"link\":\"/save/reading/outliers/3\"},{\"text\":\"Chapter 4: The Trouble with Geniuses, Part 2\",\"link\":\"/save/reading/outliers/4\"}]}],\"/application/markdown-it-katex/\":[{\"text\":\"markdown-it-katex\",\"collapsed\":false,\"items\":[{\"text\":\"1: How to use?\",\"link\":\"/application/markdown-it-katex/how-to-use\"},{\"text\":\"2: KaTeX supported functions\",\"link\":\"/application/markdown-it-katex/support-function\"},{\"text\":\"3: KaTeX support tables\",\"link\":\"/application/markdown-it-katex/support-table\"},{\"text\":\"4: Tips\",\"link\":\"/application/markdown-it-katex/tips\"}]}],\"/application/vitepress-plugin-shiki-twoslash/\":[{\"text\":\"Guide\",\"collapsed\":false,\"items\":[{\"text\":\"Getting Started\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/\"},{\"text\":\"Markdown Extensions\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/guide/markdown-extensions\"},{\"text\":\"Using a Custom Theme\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/guide/custom-theme\"}]},{\"text\":\"Features\",\"collapsed\":false,\"items\":[{\"text\":\"Queries\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/queries\"},{\"text\":\"Errors\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/errors\"},{\"text\":\"Emit\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/emit\"},{\"text\":\"Cutting\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/cutting\"},{\"text\":\"Multi-file\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/multi-file\"},{\"text\":\"@types\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/types\"},{\"text\":\"Meta Annotations\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/annotations\"},{\"text\":\"Logging\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/logging\"},{\"text\":\"Includes\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/includes\"}]},{\"text\":\"Config\",\"collapsed\":false,\"items\":[{\"text\":\"Reference\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/config/reference\"},{\"text\":\"Compiler Flags\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/config/flags\"}]}]},\"footer\":{\"copyright\":\"Copyright © 2023-2023 <a href=\\\"https://github.com/andatoshiki\\\">Anda Toshiki</a>, <a href=\\\"https://github.com/lolilab\\\">LoliLab</a> and <a href=\\\"https://github.com/toshikidev\\\">Toshiki Dev</a> present <br /><span id=\\\"siteruntime_span\\\"></span>\",\"message\":\"Wrote with <i class=\\\"heart fa fa-heart fa-xs fa-beat\\\"></i> and <i class=\\\"coffee fa fa-coffee fa-xs\\\" aria-hidden=\\\"true\\\"></i> by <a href=\\\"https://toshiki.dev\\\">Anda Toshiki</a> at <code>root@andatoshiki:/~</code>\"},\"logo\":\"/logos/logo.png\",\"outline\":\"deep\",\"outlineTitle\":\"TOC\",\"outlineBadges\":false,\"lastUpdatedText\":\"Last updated\",\"algolia\":{\"appId\":\"G9IUR45K98\",\"apiKey\":\"8528cc91281d8112b28f508317a96dd3\",\"indexName\":\"toshiki-notebook\"},\"editLink\":{\"pattern\":\"https://github.com/andatoshiki/toshiki-notebook/edit/master/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/andatoshiki\"},{\"icon\":\"twitter\",\"link\":\"https://twitter.com/andatoshiki\"}]},\"locales\":{\"/\":{\"label\":\"English\",\"lang\":\"en-US\"},\"/jp/\":{\"label\":\"Japanese\",\"title\":\"Vue Test Utils\",\"lang\":\"jp-JP\",\"description\":\"La documentation officielle de Vue Test Utils\"}},\"scrollOffset\":90,\"cleanUrls\":true}")</script>
</body>
</html>