2020-01-31 TIL

오늘 공부한 이것 저것.

npx

[npm] 🤔npx란 무엇인가?

pm2나 sequelize-cli 같은 package를 command line에서 실행하기 위해서는 해당 package를 global로 설치해야 했다.

npx를 사용하면 해당 package를 global로 실행하지 않고도 실행할 수 있다.

장점

global로 설치하면 해당 project 환경에 국한되지 않고 영향을 끼칠 수 있다. major 버전이 변경될 경우 기존 project가 동작을 안하는 경우가 발생할 수도 있다.

npx는 해당 project에 설치된 package를 바로 실행할 수 있다.

create-react-app 같은 도구를 npx로 실행하면 항상 최신 버전이 설되고, 설치된 후에 ​해당 package를 제거한다.

Typescript

tsconfig.json

Typescript가 .ts 파일을 transcompile 할 때 사용할 옵션을 정의해둔 파일.

{
  "compilerOptions": {
    "strict": true
  }
}

자세한 compilerOptions은 다음의 site에서 확인할 수 있다.

링크

사용한 옵션들은 추후에 다시 한번 정리해보자.

아직 익숙하지 않은 type 표현

const array: (string | number | boolean)[] = [1, true, '3'];

배열에 여러 type의 데이터가 포함될 경우 위와 같이 작성한다. type의 순서를 고려할 필요없이 3가지 유형에 포함되기만 하면 된다.

배열의 크기가 고정되어 있는 경우 다음과 같이 표현한다.

const fixedArray: [number, boolean, string] = [1, true, '3'];

이 경우 type의 순서도 일치해야 한다. 이것은 tuple이라고 부른다.

(tuple은 index로 변경하는 것은 안되지만 push는 된다. 주의!)

아예 상수처럼 사용할 수도 있다.

const fixedArray = [1, true, '3'] as const;

// const fixedArray: readonly [1, true, "3"]

뒤에 as const를 붙이면 상수처럼 고정할 수 있다. fixedArray의 정보를 확인하면 주석과 같이 출력된다.

as const는 객체를 상수처럼 만들 때 유용하다.

const fixedObject = { a: 3 } as const;

Written by@[Suho]
뭐든지 만들어보자.