• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 구현되지 않은 인터페이스

구현되지 않은 인터페이스

  • 이 주제에는 2개 답변, 2명 참여가 있으며 frysweet3 년, 5 월 전에 전에 마지막으로 업데이트했습니다.
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #23175

    frysweet
    참가자

    선생님 인터페이스는 단지 타입일 뿐인데,
    ex. 변수1 : 인터페이스1  =>  이런식으로 이렇게 선언해놓고  이 변수 타입에 선언되어 있는 값을 꺼내서 사용하기도 하고,
    새로운 변수에 할당해서 사용할 수 있는 이유에 대해 궁금합니다.
    변수 1 : 인터페이스1 은 타입만 할당되어 있지 전혀 구현되어 있지 않구요.
     

    예시를 보면, 이렇게 import 한 'EditorModules'  인터페이스를 변수 'public  moduleInstances'  의 타입으로 선언해놨는데요. 

     

    1.

    import 해온 인터페이스 'EditorModules' 타입인 변수 'this.moduleInstances;' 를,
    const = { BlockManager, Caret }  에 할당해 놓았는데요.
    변수 안에 있는 인터페이스 오브젝트의 값을  const BlockManager, Caret 에 구조분해 할당을 한다? 고 생각해봐도,
    순서가 안맞는데,
    ( 인터페이스 EditorModules  안에 BlockManager, Caret 이 오브젝트 키로 들어가있지만, 구조분해 순서가 안맞습니다.)
    이렇게 할당하면, 해당 const = { BlockManager, Caret }  에는 어떤 값이 할당되게 되나요?

     

    2.

    오버라이딩 되어 있나 살펴 봤는데, 엔트리 파일의 모듈이  이 모듈을 그대로 가져다 쓰는거라 오버라이딩은 아닌것 같구요.
    구현이 안된 인터페이스 타입의 변수인데,
    어떻게  import 해온 인터페이스 안에 선언되어 있는 '키값'을 사용할 수 있는지 이해가 안갑니다..ㅠㅠ

     

    => 타입으로 선언되는 '인터페이스' 모듈에는 이렇게 키 : 값(클래스) 식으로 오브젝트가 만들어져 있습니다.
    각 키값은 import 해온 클래스 들이구요.

     

    질문을 요약하자면,

    1. 인터페이스 타입의 변수1 (ex. this.moduleInstances) 을 새로운 변수2에 할당한 상태인데, 
        ex 변수 2 { a, b } = 변수1 : 인터페이스1  => 새로 할당한 '변수2' { a, b }에 각각  '어떤 값'이 할당되는 것인지,
        => 91 번째줄 const { BlockManager, Caret } = this.moduleInstances;

    2. 인터페이스 타입의 '변수1'을 구현하지 않은 상태로 사용하는데 ,
    => 예시 코드의 100 번째 줄의 'this.moduleInstances.UI.removeLoader();' 처럼 
    인터페이스  안 오브젝트의 { key :  value  (클래스) } 의 value 값인 클래스를 키값을 통해 사용할 수 있는 이유에 대해 이해가 어렵습니다.
     

    예시 코드 링크 입니다 : 
    해당 모듈 파일 => https://github.com/codex-team/editor.js/blob/next/src/components/core.ts
    인터페이스 모듈 => https://github.com/codex-team/editor.js/blob/next/src/types-internal/editor-modules.d.ts
    모듈을 가져다 쓰는 엔트리 모듈파일 => https://github.com/codex-team/editor.js/blob/next/src/codex.ts
     

    #23182

    codingapple
    키 마스터

    /**
    * Make modules instances and save it to the @property this.moduleInstances
    */
     
    private constructModules(): void {

      this.moduleInstances[Module.displayName] = new Module({

        config: this.configuration,

        eventsDispatcher: this.eventsDispatcher,

    });

     

    밑에 보니까 이런 함수가 있네요 이 함수 실행되면 this.moduleInstances 에 뭐가 들어가나봅니다

    이 함수가 실행되면 쓸 수 있겠군요 

    #23466

    frysweet
    참가자

    저걸 놓치고 있었네요... ㄷㄷ 
    그것도 모르고 이해가 안되서 너무 힘들었는데, 도움주셔서 감사합니다 ! 😀

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠