사과먹는중
당근먹는하니
귀엽고 행복해
당근먹는하니
전체 방문자
오늘
어제
  • 분류 전체보기 (274)
    • 다람쥐🐿 (26)
    • C++ 공부빵야 (7)
    • 공부👻 (5)
    • 프론트엔드✏️ (228)
      • 코드캠프 (120)
      • 팀 프로젝트✨ (31)
      • 개인공부 (67)
    • 프론트엔드 - 바닐라js (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 팀플
  • 팀 프로젝트
  • 부트캠프
  • typescript
  • 배포
  • 코딩 부트캠프
  • HTML
  • emotion
  • 배열
  • algorithm
  • 프로그래머스
  • CSS
  • 코딩
  • 공통 컴포넌트
  • 프론트엔드
  • ssg
  • javascript
  • graphql
  • React-hook-form
  • 리액트
  • 자바스크립트
  • react
  • 팀프로젝트
  • 회고
  • refreshtoken
  • 코드캠프
  • 알고리즘
  • JS
  • javascrpit
  • next.js

최근 댓글

최근 글

티스토리

250x250
반응형
hELLO · Designed By 정상우.
당근먹는하니
프론트엔드✏️/코드캠프

Javascript vs TypeScript

Javascript vs TypeScript
프론트엔드✏️/코드캠프

Javascript vs TypeScript

2022. 6. 30. 15:56
728x90
반응형

 

 잠깐이나마 배웠었던 C++과 비교해서 얘기하자면, C++은 변수를 선언할 때부터 int인지 string인지 정하고 선언한다.

 

int num = 3; 
string str = "3";

이런식으로 선언을 하고, 둘이 더하거나 빼려는 작업을 하면 자료형이 달라서 애초에 계산이 안된다.

let minus = 1-'1';// 0

let sum = 1+'1'; // '11'

그에 비해 자바스크립트는 굉장히 유연하다. 숫자와 문자열을 더하고 빼는 것이 가능하다. (결과는 좀 다른 양상인데, 이유는 모르겠음)

 

 

 타입스크립트는 자바스크립트의 기반의 언어다. 

자바스크립트는 클라이언트 측 스크립트 언어, 타입스크립트는 객체 지향 컴파일 언어다. 

 

위에 C++이 컴파일 언어인데, 컴파일 할 때 컴파일러가 오류를 잡아낼 수 있다.(모든 오류를 잡아내는 것은 아님)

타입스크립트도 마찬가지로 컴파일 타이밍에 오류를 포착한다. 

 

 타입스크립트의 이름에서 알 수 있듯이 타입을 지정해줘야 한다. 타입을 지정해주지 않으면 타입을 추론한다. 

 

export interface IUpdateBoardInput {
  title?: string;
  contents?: string;
  youtubeUrl?: string;
  boardAddress?: {
    zipcode?: string;
    address?: string;
    addressDetail?: string;
  };
  images?: string[];
}

 ts파일에 type들만 모아서 정리해놓고 export 시킨 후, 쓰는 곳에서 import해서 쓰는 방법도 있다. 

 

export interface IBoardWriteUIProps {
  isActive: boolean;
  writerError: string;
  passwordError: string;
  titleError: string;
  contentsError: string;
  onChangeWriter: (event: ChangeEvent<HTMLInputElement>) => void;
  onChangePassword: (event: ChangeEvent<HTMLInputElement>) => void;
  onChangeTitle: (event: ChangeEvent<HTMLInputElement>) => void;
  onChangeContents: (event: ChangeEvent<HTMLTextAreaElement>) => void;
  onChangeYoutubeUrl: (event: ChangeEvent<HTMLInputElement>) => void;
  onChangeAddressDetail: (event: ChangeEvent<HTMLInputElement>) => void;
  onClickAddressSearch: () => void;
  onCompleteAddressSearch: (data: any) => void;
  onChangeFileUrls: (fileUrls: string, index: number) => void;
  onClickSubmit: () => void;
  onClickUpdate: () => void;
  isEdit: boolean;
  data?: any;
  isOpen: boolean;
  zipcode: string;
  address: string;
  addressDetail: string;
  fileUrls: string[];
}

 함수 또한 타입 지정이 가능하다. 

 

 있을 수도 있고 없을 수도 있는 건 타입 지정을 banana?: String 이런식으로 ?를 넣어서 해준다. 

 

 타입스크립트를 깔면 빨간줄이 좌라라락 뜨기 때문에 거슬린다... 그리고 바닐라 자바스크립트보단 쓰기 조금 번거로울 순 있지만, 다른 타입의 데이터를 넣는 등의 실수를 방지할 수 있다.

 

 

프리캠프 할 때 봤던 영상

https://youtu.be/8YIwaO6Cojw

 

728x90
반응형
저작자표시 비영리 동일조건 (새창열림)

'프론트엔드✏️ > 코드캠프' 카테고리의 다른 글

220630 프론트엔드 부트캠프 51일차 : 동적 배포 마무리, Docker  (0) 2022.06.30
도커(Docker) 고래 모양 그거  (0) 2022.06.30
220629 프론트엔드 부트캠프 50일차 : 배포를 해보자!(3) - 동적 배포 실습  (0) 2022.06.30
알고리즘 - 신규 아이디 추천 replace, slice, concat,  (0) 2022.06.29
220628 프론트엔드 부트캠프 49일차 : 배포를 해보자!(2) - 정적 배포 실습, refreshToken 권한분기, reactNative  (0) 2022.06.29
    '프론트엔드✏️/코드캠프' 카테고리의 다른 글
    • 220630 프론트엔드 부트캠프 51일차 : 동적 배포 마무리, Docker
    • 도커(Docker) 고래 모양 그거
    • 220629 프론트엔드 부트캠프 50일차 : 배포를 해보자!(3) - 동적 배포 실습
    • 알고리즘 - 신규 아이디 추천 replace, slice, concat,
    당근먹는하니
    당근먹는하니
    귀엽고 행복해당근먹는하니 님의 블로그입니다.

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.