잡다한거

    부모 생성자가 호출하는 함수는 비캡슐적이다.

    참고: 이 일지는 노션으로부터 옮겨진 레거시 게시물입니다. 개요 자식 클래스의 생성자 함수에서 호출하는 super()는 부모 클래스의 생성자에서 실행되지 않습니다. class MotherClass { public constructor() { //여러가지 초기화 과정 this.init(); } //이 함수는 외부에서도 호출됩니다. public init(): void { console.log("init called in mother class"); } } class ChildClass extends MotherClass { private readonly field1; public constructor(field1: string) { super(); //여러가지 초기화 과정 this.field1 = field..

    Symbol.toPrimitive는 문자합을 default로 인식한다.

    참고: 이 일지는 노션으로부터 옮겨진 레거시 게시물입니다. 개요 이것은 제가 심볼, toPrimitive에 대해 알아보면서 테스트하다 알게 되었습니다. const object = {}; console.log("default string casting by concatting: " + object); console.log("default string casting by template literal: " + `${object}`); console.log("object is....", object, "\\n"); object.toString = () => `successfully overriden`; console.log("toString-overriden string casting by concatting..

    클래스 타입 강제 변환은 메서드를 보장하지 않는다.

    참고: 이 일지는 노션으로부터 옮겨진 레거시 게시물입니다. 개요 자바나 코틀린, 다트 같은 여타 클래스 기반 언어들은 모두 클래스 형 변환을 하면 변환한 클래스의 메서드 또한 호출할 수 있다. 하지만 자바스크립트는 메서드 또한 속성이자 객체다. 타입스크립트에서 인터페이스나 클래스 따위를 제공한다 해서 메서드를 자바처럼 생각해선 안된다. 하지만 타입스크립트를 갓 접한 나는 클래스와 인터페이스 같은 자바와 유사한 환경에 빠져 자바로 착각하며 코딩을 했었다. 저장 데이터를 JSON파일에 넣고 불러올 때 객체를 그대로 원하는 클래스로 형 변환해 썼던 것이다. 당연히 객체엔 함수가 없었고 결국 에러는 터지고 내 머리도 터졌다.

    Next.js에서 ./와 /는 다르다

    참고: 이 일지는 노션으로부터 옮겨진 레거시 게시물입니다. https://nodejs.org/api/url.html#url_url_strings_and_url_objects Node.js의 url 객체 명시에 따라 절대 경로는 일반적으로 http, https와 같은 프로토콜이 앞에 있다. 또한, 보편적으로 상대 경로는 프로토콜 없이 경로 앞에. 또는.. 을 둠으로써 현재 위치를 중심으로 경로를 구성한다. 하지만 웹사이트에서 네비게이션 바와 같이 라우팅에 쓰이는 컴포넌트들의 경우엔 현재 위치가 어떠하든 동일한 경로를 갖고 있어야 하는 절대 경로의 성질을 갖고 있어야 하나 개발 버전과 배포 버전의 도메인 차이 때문에 직접 입력하기엔 번거로움이 있다. Next.js는. 없이 /로 경로를 시작함으로써 자동으로 ..