찾다

 >  Q&A  >  본문

Typescript는 d.ts에서 명명된 내보내기를 동적으로 선언합니다.

TypeScript에서 VueJ용 구성 요소 라이브러리를 만들었고 이를 내 Vue 인스턴스에서 전역적으로 사용하거나(Vue.use(library) 사용) 하나씩 사용하고 싶습니다(Vue 구성 요소에서 명명된 가져오기 사용) < /p>

잘 작동하지만 index.d.ts 파일의 모든 구성 요소를 동적으로 선언하려고 할 때 TypeScript를 사용하는 데 몇 가지 문제가 있습니다(구성 요소가 많고 수동으로 선언하고 싶지 않기 때문입니다)

이렇게 작동합니다:

으아악

하지만 하나씩 가져오고 내보내지 않고 모든 구성 요소에 대해 이 작업을 수행할 수 있는 방법을 찾고 있습니다.

저는 다음과 같은 것을 시도했습니다:

으아악

또는

으아악

하지만 작동하지 않습니다. 실행하면 import { Component1 } from 'my-library' TS 오류가 발생합니다:

"'Component1' 기호를 확인할 수 없습니다. TS2614: 'my-library' 모듈이 'Component1' 멤버를 내보내지 않습니다. "my-library"에서 Component1 가져오기"를 사용할 계획입니까? ”

ps: 가져오기 전에 //@ts-ignore를 사용하면 모든 것이 잘 작동합니다.

어떤 아이디어가 있나요?

P粉642436282P粉642436282268일 전413

모든 응답(1)나는 대답할 것이다

  • P粉739886290

    P粉7398862902024-02-27 09:24:22

    제 생각엔 TS가 빌드할 때 "유형 확인"을 수행할 무언가가 필요하기 때문인 것 같습니다. 즉, TS는 런타임이 아닌 빌드 타임에 정의되기를 원하기 때문에 유연성 상실의 대표적인 예 중 하나인 JS보다 더 제한적입니다.

    간단히 말하면 이렇게는 할 수 없습니다. 할 수 있는 유일한 일은 키가 지정된 개체의 모든 것을 내보내는 것입니다. 그러나 이는 해당 개체를 다른 파일로 가져올 때 일부가 아니라 전체를 가져와야 함을 의미합니다.

    파일.vue

    으아악

    회신하다
    0
  • 취소회신하다