레이블이 typescript인 게시물을 표시합니다. 모든 게시물 표시
레이블이 typescript인 게시물을 표시합니다. 모든 게시물 표시

9.17.2020

Toy project with React + TypeScript + Firebase - LinkBook

 


LinkBook



User Experience


  • User can login or sign up with email and password.
  • User can login via Google or Github account.
  • User can create, read, update, delete links.
  • User can assign title and related tags(keywords) when creating or updating link items.
  • User can sort links by created(or updated)time by clicking arrow button.
  • User can filter their links by a tag keyword.

Preview





P.S.


  • Skills that I used
    • React (create-react-app)
    • TypeScript
    • Firebase
    • gh-pages
  • If you find any bug on this website, please let me know.
  • Contact Info
    • swimmingkiim@gmail.com
Share:

9.10.2020

TypeScript 기본 개념 정리




아래 정리는 노마드코더의 TypeScript 강의를 듣고 복습으로 작성한 것입니다.

TypeScript란


  • TypeScript는 JavaScript를 기초로 해서 만들어졌다.
  • 말랑한 언어인 JavaScript에 엄격하게 타입을 구분해서 사용하는 것이 TypeScript이다.
  • TypeScript는 컴파일 되어서 JavaScript로 사용된다.
  • 사소한 실수를 하더라도 TypeScript는 컴파일 과정에서 걸러지기 때문에 버그를 줄일 수 있다.

설치


  • npm install typescript --save-dev (개별 프로젝트에 설치시)
  • npm install g typescript (컴퓨터 전체에서 사용시)

tsconfig.json


  • TypeScript가 어떻게 JavaScript로 변환될지 옵션을 설정해주는 파일이다.
  • 기본 예시


{
  "compilerOptions": {
    "module": "commonjs",
    "target": "ES2015",
    "sourceMap": true,
    "outDir": "dist"
  },
  "include": ["index.ts"],
  "exclude": ["node_modules"]
}


tsc



  • tsc 를 터미널에 입력 후 실행하면 tsconfig.json의 설정에 따라 TypeScript 파일이 JavaScript 파일로 바뀐다.
  • package.json에서 start 명령어를 node (실행할 파일경로) , prestart 명령어를 tsc 로 해놓으면 다음과 같은 순서로 실행된다.
    1. tsc 를 실행하여 JavaScript 파일 생성
    2. node 명령어로 생성된 파일 실행

Types



P.S. VS Code를 사용한다면 TS Lint 익스텐션을 설치할 것. TypeScript Error를 나타내준다.
P.S. tsc-watch 모듈을 dev모드로 설치 후, package.json의 script에서 "start": "tsc-watch --onSuccess (백슬래쉬)" node (파일경로) (백슬래쉬)" 로 지정해주면 TypeScript 파일이 업데이트 될 때마다 자동으로 tsc 후 node 명령어를 실행시켜준다.

아래는 타입을 어떻게 지정하는지 보여주는 예시 코드이다.
const sayHi = (name:string, age:number):string => "someValue";

Interface


  • interface 로 선언한 타입은 TypeScript의 타입 지정할 때 사용될 수 있다.

interface Human {
  name: string;
  age:number;
  gender: string;
}

const person = {
  name: "me",
  age: 100,
  gender: "female"
}

const sampleFunction = (person:Human) : string => "someValue";

Class


  • interface 는 JavaScript 코드로 컴파일 되지 않는다.
  • 그런데 경우에 따라서는 이와 같은 구조가 JavaScript 코드로 컴파일 되어야 할 수 있다.
  • 그럴 때는 class 를 사용한다.

class Human {
  public name: string;
  public age: number;
  public gender: string;
  constructor(name: string, age: number, gender?: string) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }
}

const me: Human = new Human("me", 100, "female");

P.S. 파일 끝에 export {}; 코드를 넣어주어야 TypeScript Error가 나지 않는다.

P.S.
변수명 뒤에 ? 를 붙여주면 함수를 호출할 때 선택적으로 기입할 수 있게 된다.
P.S. const me:Human[] 라고 적어주면 me라는 변수는 Human이란 타입 요소들의 array가 된다.
Share: