[{"data":1,"prerenderedAt":308},["ShallowReactive",2],{"term-s\u002Fstatic-typing":3,"related-s\u002Fstatic-typing":290},{"id":4,"title":5,"acronym":6,"body":7,"category":271,"description":272,"difficulty":273,"extension":274,"letter":275,"meta":276,"navigation":123,"path":277,"related":278,"seo":284,"sitemap":285,"stem":288,"subcategory":6,"__hash__":289},"terms\u002Fterms\u002Fs\u002Fstatic-typing.md","Static Typing",null,{"type":8,"value":9,"toc":265},"minimark",[10,15,19,23,26,30,254,258,261],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Static typing means you have to tell the computer what type each variable is when you write the code, and it checks everything is correct BEFORE running. It is like proofreading your essay before handing it in. TypeScript, Java, and Go are statically typed. Python and JavaScript are not — they figure out types on the fly.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Static typing is a type system where variable types are declared explicitly or inferred at compile time and checked before program execution. This catches type errors early, enables better IDE tooling (autocomplete, refactoring), improves self-documentation, and generally makes large codebases more maintainable. The opposite is dynamic typing, where types are determined and checked at runtime. TypeScript adds static typing to JavaScript.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F TypeScript (statically typed):\nfunction add(a: number, b: number): number {\n  return a + b;\n}\n\nadd(1, 2);       \u002F\u002F OK\nadd(1, '2');     \u002F\u002F TypeScript ERROR before running:\n                 \u002F\u002F Argument of type 'string' is not assignable to 'number'\n\n\u002F\u002F JavaScript (dynamically typed — no error until runtime):\nfunction add(a, b) { return a + b; }\nadd(1, '2'); \u002F\u002F runs fine, returns '12' (string concatenation!)\n","typescript","",[38,39,40,49,93,112,118,125,151,179,185,190,196,230],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F TypeScript (statically typed):\n",[41,50,52,56,60,64,68,71,75,78,81,83,85,88,90],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," add",[41,61,63],{"class":62},"sMK4o","(",[41,65,67],{"class":66},"sHdIc","a",[41,69,70],{"class":62},":",[41,72,74],{"class":73},"sBMFI"," number",[41,76,77],{"class":62},",",[41,79,80],{"class":66}," b",[41,82,70],{"class":62},[41,84,74],{"class":73},[41,86,87],{"class":62},"):",[41,89,74],{"class":73},[41,91,92],{"class":62}," {\n",[41,94,96,100,104,107,109],{"class":43,"line":95},3,[41,97,99],{"class":98},"s7zQu","  return",[41,101,103],{"class":102},"sTEyZ"," a",[41,105,106],{"class":62}," +",[41,108,80],{"class":102},[41,110,111],{"class":62},";\n",[41,113,115],{"class":43,"line":114},4,[41,116,117],{"class":62},"}\n",[41,119,121],{"class":43,"line":120},5,[41,122,124],{"emptyLinePlaceholder":123},true,"\n",[41,126,128,131,133,137,139,142,145,148],{"class":43,"line":127},6,[41,129,130],{"class":58},"add",[41,132,63],{"class":102},[41,134,136],{"class":135},"sbssI","1",[41,138,77],{"class":62},[41,140,141],{"class":135}," 2",[41,143,144],{"class":102},")",[41,146,147],{"class":62},";",[41,149,150],{"class":47},"       \u002F\u002F OK\n",[41,152,154,156,158,160,162,165,169,172,174,176],{"class":43,"line":153},7,[41,155,130],{"class":58},[41,157,63],{"class":102},[41,159,136],{"class":135},[41,161,77],{"class":62},[41,163,164],{"class":62}," '",[41,166,168],{"class":167},"sfazB","2",[41,170,171],{"class":62},"'",[41,173,144],{"class":102},[41,175,147],{"class":62},[41,177,178],{"class":47},"     \u002F\u002F TypeScript ERROR before running:\n",[41,180,182],{"class":43,"line":181},8,[41,183,184],{"class":47},"                 \u002F\u002F Argument of type 'string' is not assignable to 'number'\n",[41,186,188],{"class":43,"line":187},9,[41,189,124],{"emptyLinePlaceholder":123},[41,191,193],{"class":43,"line":192},10,[41,194,195],{"class":47},"\u002F\u002F JavaScript (dynamically typed — no error until runtime):\n",[41,197,199,201,203,205,207,209,211,213,216,219,221,223,225,227],{"class":43,"line":198},11,[41,200,55],{"class":54},[41,202,59],{"class":58},[41,204,63],{"class":62},[41,206,67],{"class":66},[41,208,77],{"class":62},[41,210,80],{"class":66},[41,212,144],{"class":62},[41,214,215],{"class":62}," {",[41,217,218],{"class":98}," return",[41,220,103],{"class":102},[41,222,106],{"class":62},[41,224,80],{"class":102},[41,226,147],{"class":62},[41,228,229],{"class":62}," }\n",[41,231,233,235,237,239,241,243,245,247,249,251],{"class":43,"line":232},12,[41,234,130],{"class":58},[41,236,63],{"class":102},[41,238,136],{"class":135},[41,240,77],{"class":62},[41,242,164],{"class":62},[41,244,168],{"class":167},[41,246,171],{"class":62},[41,248,144],{"class":102},[41,250,147],{"class":62},[41,252,253],{"class":47}," \u002F\u002F runs fine, returns '12' (string concatenation!)\n",[11,255,257],{"id":256},"when-youll-hear-this","When You'll Hear This",[16,259,260],{},"\"TypeScript adds static typing to JavaScript.\" \u002F \"Static typing catches bugs before you even run the code.\"",[262,263,264],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":266},[267,268,269,270],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":256,"depth":51,"text":257},"general","Static typing means you have to tell the computer what type each variable is when you write the code, and it checks everything is correct BEFORE running.","intermediate","md","s",{},"\u002Fterms\u002Fs\u002Fstatic-typing",[279,280,281,282,283],"Type","TypeScript","Compiler","Bug","Interface",{"title":5,"description":272},{"changefreq":286,"priority":287},"weekly",0.7,"terms\u002Fs\u002Fstatic-typing","y77V9Lp_yvH2vo1PKwj3FjekSNHHpZZ7vQTL8_ZyYSQ",[291,295,298,301,304],{"title":282,"path":292,"acronym":6,"category":271,"difficulty":293,"description":294},"\u002Fterms\u002Fb\u002Fbug","beginner","A bug is anything in your code that makes it behave wrong.",{"title":281,"path":296,"acronym":6,"category":271,"difficulty":273,"description":297},"\u002Fterms\u002Fc\u002Fcompiler","A compiler is like a translator that reads your entire code book, converts it all into a language the CPU understands, and hands you the finished translate...",{"title":283,"path":299,"acronym":6,"category":271,"difficulty":273,"description":300},"\u002Fterms\u002Fi\u002Finterface","An interface is like a job description. It says 'whatever fills this role must be able to do X, Y, and Z' without caring how they do it.",{"title":279,"path":302,"acronym":6,"category":271,"difficulty":293,"description":303},"\u002Fterms\u002Ft\u002Ftype","A type tells the computer what kind of thing a value is — is it a number, text, true\u002Ffalse, or a list?",{"title":280,"path":305,"acronym":6,"category":306,"difficulty":273,"description":307},"\u002Fterms\u002Ft\u002Ftypescript","frontend","TypeScript is JavaScript with a strict parent watching over it.",1776518315335]