티스토리 수익 글 보기
What is TypeScript?
JavaScript and More
TypeScript adds additional syntax to JavaScript to support a tighter integration with your editor. Catch errors early in your editor.
A Result You Can Trust
TypeScript code converts to JavaScript, which runs anywhere JavaScript runs: In a browser, on Node.js, Deno, Bun and in your apps.
Safety at Scale
TypeScript understands JavaScript and uses type inference to give you great tooling without additional code.
Adopt TypeScript Gradually
Apply types to your JavaScript project incrementally, each step improves editor support and improves your codebase.
Let's take this incorrect JavaScript code, and see how TypeScript can catch mistakes in your editor.
jsfunctioncompact (arr ) {if (orr .length > 10)returnarr .trim (0, 10)returnarr }
No editor warnings in JavaScript files
This code crashes at runtime!
JavaScript file
js// @ts-checkfunctioncompact (arr ) {if (Cannot find name 'orr'.2304Cannot find name 'orr'.. orr length > 10)returnarr .trim (0, 10)returnarr }
Adding this to a JS file shows errors in your editor
the param is arr, not orr!
JavaScript with TS Check
js// @ts-check/** @param {any[]} arr */functioncompact (arr ) {if (arr .length > 10)returnProperty 'trim' does not exist on type 'any[]'.2339Property 'trim' does not exist on type 'any[]'.arr .(0, 10) trim returnarr }
Using JSDoc to give type information
Now TS has found a bad call. Arrays have slice, not trim.
JavaScript with JSDoc
tsfunctioncompact (arr : string[]) {if (arr .length > 10)returnarr .slice (0, 10)returnarr }
TypeScript adds natural syntax for providing types
TypeScript file
Describe Your Data
Describe the shape of objects and functions in your code.
Making it possible to see documentation and issues in your editor.
tsinterfaceAccount {id : numberdisplayName : stringversion : 1}functionwelcome (user :Account ) {console .log (user .id )}
tstypeResult = "pass" | "fail"functionverify (result :Result ) {if (result === "pass") {console .log ("Passed")} else {console .log ("Failed")}}
TypeScript becomes JavaScript via the delete key.
tstypeResult = "pass" | "fail"functionverify (result :Result ) {if (result === "pass") {console .log ("Passed")} else {console .log ("Failed")}}
TypeScript file.
tstypeResult = "pass" | "fail"functionverify (result :Result ) {if (result === "pass") {console .log ("Passed")} else {console .log ("Failed")}}
Types are removed.
jsfunctionverify (result ) {if (result === "pass") {console .log ("Passed")} else {console .log ("Failed")}}
JavaScript file.
Loved by Developers
Voted 2nd most loved programming language in the Stack Overflow 2020 Developer survey
TypeScript was used by 78% of the 2020 State of JS respondents, with 93% saying they would use it again.
TypeScript was given the award for “Most Adopted Technology” based on year-on-year growth.