![[Typescript] 타입시스템 (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb22PeS%2FbtsAzbkMKsC%2FXtltyKkHk7aBxG6mlVlXgk%2Fimg.png)
[Typescript] 타입시스템 (1)FrontEnd/Typescript2023. 11. 18. 01:26
Table of Contents
Typescript의 타입시스템에 관하여...

Typescript의 타입시스템은 왜 필요했을까?

Javascript를 사용하면 데이터 타입을 정해놓지 않고도 코드를 구성할 수 있다.
따라서 이러한 자유 덕분에 Javascript는 어ㄹ... 쉽다.
하지만 이 자유는 매우 위험하며 다뤄야 하는 파일이 늘어날수록, 받고 보내는 데이터가 많을수록 훼손당하기 쉬우며 실제로 배포단계에서 원활하게 작동되지 않은 채 배포될 수도 있다.
아래의 코드 예시를 보면..!
function paintPainting(painter, painting){ return painter .prepare() .paint(painting,painter.ownMaterials) .finish();}
문자열로 생각하고 만들었던 painting... 또 하나 이상의 painter 메서드들....
만약 painting이 다른 데이터 타입으로 바뀌면?
만약 painter 메서드 이름이 변경되면?
다른 언어는 컴파일러가 충돌할 수 있다고 판단되면 코드 실행을 거부할 수 있다.
하지만 Javascript는 동적타입언어이기 때문에 충돌가능성을 확인하지 않고 코드를 실행한다.
이 편리함과 자유는 코드의 안정성을 떨어트린다.
그럼 Typescript로 하면 어떻게 되는데???
Typescript로 작성된 아래의 코드 예시를 보자.
interface Painter{ finish() : boolean; ownMaterials : Materials[]; paint(painting: string, materials:Materials[]):boolean;}function paintPainter(painter:Painter, painting:string):boolean{/*...*/}
이렇게 Typescript는 구문을 적용해 객체의 형태를 "설명" 하고 있어 강력하게 객체가 어떻게 보이는지 설명한다.
따라서 개발자는 Typescript를 사용하며 객체의 형태를 설명하고 타입을 제한하며 충돌가능성을 없애고 코드의 안정성을 향상한다.
'FrontEnd > Typescript' 카테고리의 다른 글
[Typescript] 객체(2) (1) | 2024.02.10 |
---|---|
[Typescript] 객체(1) (1) | 2024.02.09 |
[Typescript] 유니언과 리터럴(2) (1) | 2023.12.27 |
[Typescript] 유니언과 리터럴(1) (0) | 2023.11.20 |
[Typescript] 타입시스템 (2) (2) | 2023.11.18 |
@Indigochi1d :: Indigochi1d's Commit Log
안녕하세요? 개발자입니다.