๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
D.evelop/TypeScript

[TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ž€? ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

by Danne 2021. 12. 10.

JS TS
๐Ÿงบ ⇒ ๐ŸŽ, ๐Ÿฅฆ, ๐ŸŸ, ๐ŸŽ‚ ๐Ÿงบ ๐ŸŽ ⇒ ๐ŸŽ
๐Ÿงบ  ๐Ÿฅฆ ⇒ ๐Ÿฅฆ
๐Ÿงบ ๐ŸŸ, ๐ŸŽ‚  ⇒ ๐ŸŸ, ๐ŸŽ‚

JavaScript

  • Dynamic Typing
  • ์œ ์—ฐ์„ฑ๊ณผ ์ž์œ ๋„๊ฐ€ ๋†’์Œ
    • ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ  ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง์— ๋”ฐ๋ผ ๋‹จ์ ์ด๋จ
console.log('1' * 1)  // 1

console.log(1 +'')    // '1'

 

TypeScript

https://www.typescriptlang.org/play?ssl=1&ssc=21&pln=1&pc=1#code/MYewdgziA2CmB00QHMAUByAjOgBAKh0wEoAoIA

  • JavaScript์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์œผ๋กœ JavaScript์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์žˆ์Œ
  • JavaScript์— ๋น„ํ•ด ์—„๊ฒฉํ•œ ๊ฒ€์‚ฌํ•จ
    • ์ž์„ธํ•œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์ œ๊ณต
    • ์˜คํƒ€ ๊ต์ •
  • ๋ธŒ๋ผ์šฐ์ €๋Š” TypeScript๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ. ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .ts(TypeScript)ํŒŒ์ผ์„ .js(JavaScript) ํŒŒ์ผ๋กœ ๋ณ€ํ™˜
    • ์‰ฌ์šด ํ˜ธํ™˜, ํ†ตํ•ฉ
  • ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
/* ์ž๋ฃŒํ˜•์ด ๋‹ค๋ฅผ ๋•Œ */

console.log('1' * 1) 
// The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.

const test = "1"
test = 1
// Cannot assign to 'test' because it is a constant.

 

 

  • ๋ณ€์ˆ˜ ์„ ์–ธ
let test : string = 'dan';

let test2 : string = 1; // Type 'number' is not assignable to type 'string'.

// Array
let arr : [] = [1 ,2 ,3]; //Type '[number, number, number]' is not assignable to type '[]'. Source has 3 element(s) but target allows only 0.
let arr : number[] = [1 ,2 ,3];

// Object
let tesbObj : { first : string } = { first : 'abc' } 

let tesbObj2 : { first : string } = {  } // Property 'first' is missing in type '{}' but required in type '{ first: string; }'.
let tesbObj3 : { first?: string } = {  }

// Union type : ์—ฌ๋Ÿฌ ์ž๋ฃŒํ˜• ์ง€์ • ๊ฐ€๋Šฅ
let test : string | number = 'dan';
test = 123

 

  • Type alias : ํƒ€์ž… ์ž์ฒด๋ฅผ ๋ณ€์ˆ˜์— ๋„ฃ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
type test = string | number ;

let num : test = 123

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€