programming/javascript

    [typescript] import,export 구문

    export에는 named export, default export 두가지 방식이 있다1. default exportexport default const A_Module위와 같이 작성하면되고export했을 때는 해당 파일에서 하나의 항목만을 내보낼 수 있고import시에 원하는 이름으로 import 할 수 있음import myModule from './A_module'이런식으로 ./A_module에서 myModule로 바꾸는 식으로 이름으로 바꿀 수 있음2. named exportexport const A_Module위 방식은 내보내진 이름 그대로 import해야하고import 시에 {} 중활호를 꼭 붙여줘야한다import { A_Module } from './A_Module'

    [nextjs] 환경변수

    기본적으로 env파일을 통해 로드된 모든 환경변수는 Nodejs환경에서만 사용 가능한데 그걸 브라우져 환경에서 사용하기 위해서 환경변수 앞에 NEXT_PUBLIC이란느 접두사를 붙이면 NEXT_PUBLIC_KEY=abcdefghijk nextjs에서 브라우져로 js파일을 보낼때 같이보내는것같다 NEXT_PUBLIC 말고도 ENV_LOCAL ( 로컬 즉 nodejs환경에서만 해당 변수를 읽을수있다. 브라우져에서는 undefined로뜰것임) PRODUCTION_ENV 등 몇가지 더 있으니 필요하면 알아보면 된다

    [typescript] typeof, keyof

    1.typeof 객체를 객체형태의 타입으로 만들어 주는 키워드 const obj = { red : "apple", blue : "sky", yellow : "flower", } 이런 객체가 있을 때 obj에 typeof를 사용하면 아래처럼 타입에 할당이 가능하다 type A = typeof obj type A = { red : "apple"; blue : "sky"; yellow : "flower"; } 2.keyof 객체형태의 type의 key들 로 union type을 만들어줌 type A = { red : "apple"; blue : "sky"; yellow : "flower"; } type union = keyof A //type union = "red" | "blue" | "yellow" key..

    [rxjs 용어 정리] hot, cold Observable

    Hot Observable : 뜨거워서 데이터를 바로 흘려 보내는 Observable Cold Observable : 꽁꽁 얼어 붙어 있어 subscribe을 해야만 흘려 보내는 Observable Hot Observable 특징 구독자의 존재 여부와 상관없이 데이터를 배출하는 Observable 이다. 그래서 여러 구독자에 선택적으로 고려가 가능하다. 구독 시점으로부터 발행하는 값을 받는 걸 기본으로 한다. 마우스 이벤트, 키보드 이벤트, 시스템 이벤트 등이 주로 사용된다. 멀티캐스팅도 포함된다. Cold Observable 특징 일반적인 옵저버 형태를 말한다. 누가 구독해주지 않으면 데이터를 배출해주지 않는다. 일반적인 웹 요청, 데이터베이스 쿼리 등이 사용되며 내가 요청하면 결과를 받는 과정을 거친..

    [rxjs] rxjs의 테스트 코드 작성(미완성)

    옵저버블 객체를 subscribe하는 코드에 대해 테스트코드를 작성할 때, 옵저버블 객체의 비동기적인 동작 때문에 subscribe()의 동작이 끝나기 전에 return을 시키는것으로 보인다 그래서 아래의 코드에서는 catch블럭으로 넘어갈 일이 없을 것 같다 export class Service { ---생략--- async func(req){ try { const observable1$ = from(req.data).pipe( mergeMap(async (data) => ({ await repository1.create(e) }), ); observable1$.subscribe({ next: async (data) => { await repository2.create(data) }, error: (e..

    [typescript] 클래스 선언 방법

    아래처럼 작성하면 타입스크립트에서는 에러가 난다 class Person { constructor(name) { // 클래스 프로퍼티의 선언과 초기화 this.name = name; } walk() { console.log(`${this.name} is walking.`); } } 타입스크립트에서는 아래처럼 클래스 몸체에 클래스 프로퍼티를 사전 선언하여야한다. class Person { // 클래스 프로퍼티를 사전 선언하여야 한다 name: string; constructor(name: string) { // 클래스 프로퍼티수에 값을 할당 this.name = name; } walk() { console.log(`${this.name} is walking.`); } } 클래스 몸체에는 메소드만 있어야한다.

    [typescript] inject,injectable데코레이터 토큰 ,프로바이더

    출처: https://edykim.com/ko/post/understanding-angular-dependency-injection-inject-injectable-tokens-and-providers/

    [typescript] ?: 구문

    인터페이스나 타입 만들떄 interface company { name: string; chirman?: string; } 이렇게 쓰면 ?: chirman은 넣어도되고 안넣어도된다