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粉7398862902024-02-27 09:24:22
제 생각엔 TS가 빌드할 때 "유형 확인"을 수행할 무언가가 필요하기 때문인 것 같습니다. 즉, TS는 런타임이 아닌 빌드 타임에 정의되기를 원하기 때문에 유연성 상실의 대표적인 예 중 하나인 JS보다 더 제한적입니다.
간단히 말하면 이렇게는 할 수 없습니다. 할 수 있는 유일한 일은 키가 지정된 개체의 모든 것을 내보내는 것입니다. 그러나 이는 해당 개체를 다른 파일로 가져올 때 일부가 아니라 전체를 가져와야 함을 의미합니다.
파일.vue
으아악