toshiki-notebook/assets/application_vitepress-plugin-shiki-twoslash_api_errors.md.ca624bf6.js

10 lines
12 KiB
JavaScript
Raw Permalink 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.

import{_ as p}from"./chunks/PageInfo.vue_vue_type_script_setup_true_lang.65c6b98c.js";import{_ as i,A as c,o as d,c as y,k as s,a,E as o,O as e,w as r}from"./chunks/framework.c989bd33.js";import"./chunks/commonjsHelpers.725317a4.js";const M=JSON.parse('{"title":"Errors","description":"Raise compiler errors in your code examples to show incorrect states.","frontmatter":{"description":"Raise compiler errors in your code examples to show incorrect states.","title":"Errors"},"headers":[],"relativePath":"application/vitepress-plugin-shiki-twoslash/api/errors.md","filePath":"application/vitepress-plugin-shiki-twoslash/api/errors.md","lastUpdated":1726418622000}'),u={name:"application/vitepress-plugin-shiki-twoslash/api/errors.md"},m={class:"vp-code-group vp-adaptive-theme"},b={class:"blocks"},v={class:"language-ts vp-adaptive-theme active line-numbers-mode"},A={class:"shiki github-dark-dimmed twoslash lsp",style:{"background-color":"#22272e",color:"#adbac7"}},g={class:"code-container"},C={class:"line"},h={style:{color:"#ADBAC7"}},D={class:"shiki github-light twoslash lsp",style:{"background-color":"#fff",color:"#24292e"}},k={class:"code-container"},F={class:"line"},w={style:{color:"#24292E"}};function B(E,l,f,x,S,T){const t=p,n=c("data-err");return d(),y("div",null,[l[23]||(l[23]=s("h1",{id:"errors",tabindex:"-1"},[a("Errors "),s("a",{class:"header-anchor",href:"#errors","aria-label":'Permalink to "Errors"'},"")],-1)),o(t,{readTime:"1",words:"227"}),l[24]||(l[24]=s("p",null,"Most of the time, you want to avoid errors in your code examples. Strictly speaking, this usually means setting the right compiler flags and environment in each code example.",-1)),l[25]||(l[25]=s("p",null,"Sometimes however, you do want to raise a compiler error — to show incorrect states. In those cases, twoslash has a way to mark the compiler errors you expect.",-1)),l[26]||(l[26]=s("h2",{id:"errors-num",tabindex:"-1"},[s("code",null,"@errors: [num]"),a(),s("a",{class:"header-anchor",href:"#errors-num","aria-label":'Permalink to "`@errors: [num]`"'},"")],-1)),l[27]||(l[27]=s("p",null,"All TypeScript compiler errors have a number, this number is relatively arbitrary and can change between TypeScript versions. For our case these numbers are useul in declaring what we expect to see.",-1)),l[28]||(l[28]=s("p",null,[a("You can use "),s("code",null,"// @errors: [num]"),a(" to tell Twoslash that you expect this error to occur. This moves the compiler error message into the code example.")],-1)),s("div",m,[l[22]||(l[22]=e('<div class="tabs"><input type="radio" name="group-8m8Mv" id="tab-gIevMmd" checked="checked"><label for="tab-gIevMmd">output</label><input type="radio" name="group-8m8Mv" id="tab-DhJzS-D"><label for="tab-DhJzS-D">markdown</label></div>',1)),s("div",b,[s("div",v,[l[18]||(l[18]=s("button",{title:"Copy Code",class:"copy"},null,-1)),l[19]||(l[19]=s("span",{class:"lang"},"ts",-1)),s("pre",A,[l[8]||(l[8]=s("div",{class:"language-id"},"ts",-1)),s("div",g,[s("code",null,[l[5]||(l[5]=s("div",{class:"line"},[s("span",{style:{color:"#F47067"}},"const"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},[s("data-lsp",{lsp:'const a: "123"'},"a")]),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},"'123'")],-1)),s("div",C,[s("span",h,[o(n,null,{default:r(()=>l[0]||(l[0]=[s("data-lsp",{lsp:"const a: any"},"a",-1)])),_:1}),l[1]||(l[1]=a())]),l[2]||(l[2]=s("span",{style:{color:"#F47067"}},"=",-1)),l[3]||(l[3]=s("span",{style:{color:"#ADBAC7"}}," ",-1)),l[4]||(l[4]=s("span",{style:{color:"#6CB6FF"}},"132",-1))]),l[6]||(l[6]=s("span",{class:"error"},[s("span",null,"Cannot assign to 'a' because it is a constant."),s("span",{class:"code"},"2588")],-1)),l[7]||(l[7]=s("span",{class:"error-behind"},"Cannot assign to 'a' because it is a constant.",-1))])])]),s("pre",D,[l[17]||(l[17]=s("div",{class:"language-id"},"ts",-1)),s("div",k,[s("code",null,[l[14]||(l[14]=s("div",{class:"line"},[s("span",{style:{color:"#D73A49"}},"const"),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#005CC5"}},[s("data-lsp",{lsp:'const a: "123"'},"a")]),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#D73A49"}},"="),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#032F62"}},"'123'")],-1)),s("div",F,[s("span",w,[o(n,null,{default:r(()=>l[9]||(l[9]=[s("data-lsp",{lsp:"const a: any"},"a",-1)])),_:1}),l[10]||(l[10]=a())]),l[11]||(l[11]=s("span",{style:{color:"#D73A49"}},"=",-1)),l[12]||(l[12]=s("span",{style:{color:"#24292E"}}," ",-1)),l[13]||(l[13]=s("span",{style:{color:"#005CC5"}},"132",-1))]),l[15]||(l[15]=s("span",{class:"error"},[s("span",null,"Cannot assign to 'a' because it is a constant."),s("span",{class:"code"},"2588")],-1)),l[16]||(l[16]=s("span",{class:"error-behind"},"Cannot assign to 'a' because it is a constant.",-1))])])]),l[20]||(l[20]=s("div",{class:"line-numbers-wrapper","aria-hidden":"true"},[s("span",{class:"line-number"},"1"),s("br")],-1))]),l[21]||(l[21]=e('<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 github-dark-dimmed vp-code-dark"><code><span class="line"><span style="color:#ADBAC7;">```ts twoslash</span></span>\n<span class="line"><span style="color:#768390;">// @errors: 2588</span></span>\n<span class="line"><span style="color:#F47067;">const</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">a</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&#39;123&#39;</span></span>\n<span class="line"><span style="color:#ADBAC7;">a </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">132</span></span>\n<span class="line"><span style="color:#ADBAC7;">```</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#24292E;">```ts twoslash</span></span>\n<span class="line"><span style="color:#6A737D;">// @errors: 2588</span></span>\n<span class="line"><span style="color:#D73A49;">const</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">a</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">=</span><span style="color:#24292E;"> </span><span style="color:#032F62;">&#39;123&#39;</span></span>\n<span class="line"><span style="color:#24292E;">a </span><span style="color:#D73A49;">=</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">132</span></span>\n<span class="line"><span style="color:#24292E;">```</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></div></div>',1))])]),l[29]||(l[29]=s("h2",{id:"noerrors",tabindex:"-1"},[s("code",null,"@noErrors"),a(),s("a",{class:"header-anchor",href:"#noerrors","aria-label":'Permalink to "`@noErrors`"'},"")],-1)),l[30]||(l[30]=s("p",null,[a("Sometimes you have needs in which a broken TypeScript build is okay. A good example of this is using a "),s("a",{href:"./queries#completions"},"completion query"),a(", which requires a broken TypeScript project to work. You can use "),s("code",null,"// @noErrors"),a(" to supress all errors in a code sample, and not have them show inline.")],-1)),l[31]||(l[31]=s("div",{class:"vp-code-group vp-adaptive-theme"},[s("div",{class:"tabs"},[s("input",{type:"radio",name:"group-05Y_Q",id:"tab-Wr8474Y",checked:"checked"}),s("label",{for:"tab-Wr8474Y"},"output"),s("input",{type:"radio",name:"group-05Y_Q",id:"tab-nAVkRyx"}),s("label",{for:"tab-nAVkRyx"},"markdown")]),s("div",{class:"blocks"},[s("div",{class:"language-ts vp-adaptive-theme active line-numbers-mode"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki github-dark-dimmed twoslash lsp",style:{"background-color":"#22272e",color:"#adbac7"}},[s("div",{class:"language-id"},"ts"),s("div",{class:"code-container"},[s("code",null,[s("div",{class:"line"},[s("span",{style:{color:"#F47067"}},"const"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},[s("data-lsp",{lsp:'const a: "123"'},"a")]),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},"'123'")]),s("div",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},[s("data-lsp",{lsp:"const a: any"},"a"),a()]),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"132")])])])]),s("pre",{class:"shiki github-light twoslash lsp",style:{"background-color":"#fff",color:"#24292e"}},[s("div",{class:"language-id"},"ts"),s("div",{class:"code-container"},[s("code",null,[s("div",{class:"line"},[s("span",{style:{color:"#D73A49"}},"const"),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#005CC5"}},[s("data-lsp",{lsp:'const a: "123"'},"a")]),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#D73A49"}},"="),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#032F62"}},"'123'")]),s("div",{class:"line"},[s("span",{style:{color:"#24292E"}},[s("data-lsp",{lsp:"const a: any"},"a"),a()]),s("span",{style:{color:"#D73A49"}},"="),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#005CC5"}},"132")])])])]),s("div",{class:"line-numbers-wrapper","aria-hidden":"true"},[s("span",{class:"line-number"},"1"),s("br")])]),s("div",{class:"language-md vp-adaptive-theme line-numbers-mode"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"md"),s("pre",{class:"shiki github-dark-dimmed vp-code-dark"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},"```ts twoslash")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#768390"}},"// @noErrors")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#F47067"}},"const"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"a"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},"'123'")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},"a "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"132")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},"```")])])]),s("pre",{class:"shiki github-light vp-code-light"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#24292E"}},"```ts twoslash")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#6A737D"}},"// @noErrors")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#D73A49"}},"const"),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#005CC5"}},"a"),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#D73A49"}},"="),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#032F62"}},"'123'")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#24292E"}},"a "),s("span",{style:{color:"#D73A49"}},"="),s("span",{style:{color:"#24292E"}}," "),s("span",{style:{color:"#005CC5"}},"132")]),a(`
`),s("span",{class:"line"},[s("span",{style:{color:"#24292E"}},"```")])])]),s("div",{class:"line-numbers-wrapper","aria-hidden":"true"},[s("span",{class:"line-number"},"1"),s("br"),s("span",{class:"line-number"},"2"),s("br"),s("span",{class:"line-number"},"3"),s("br"),s("span",{class:"line-number"},"4"),s("br"),s("span",{class:"line-number"},"5"),s("br")])])])],-1))])}const N=i(u,[["render",B]]);export{M as __pageData,N as default};