inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"

글로벌 컴포넌트 등록

components.d.ts파일이 없어도 타입에러가 없는 이유

1017

강한 바다사자

작성한 질문수 6

2

강의에서 보여주시는 타입에러(색깔)이 나오지 않아 components.d.ts파일을 생상하지 않은 상태인데 강의시점보다 vue가 업데이트가 되서 그런걸까요 typeScript를 사용하지 않아서 그런건가요??

+추가로 unplugin-vue-components를 사용해서 dts:true를 사용하지 않아도(즉, components.d.ts파일 미생성) 동일하게 진행됩니다.

 

typeScript를 사용하지 않아서 타입에러가 없는거라면.. typescript 셋팅을 따로 해야될까요? 강의상 파일도 components.d.ts파일을 제외하면 ts파일은 보이지 않고 scripts상에서도 ts를 사용하시지는 않는것같은데 설치가 필요한지 궁금합니다.

vue.js

답변 1

1

짐코딩

안녕하세요 🙂

최신 버전의 VSCode는 파일 구조 및 내용을 분석하여 자동으로 타입을 추론하는 능력이 향상되었을 수 있습니다. 이 경우에는 명시적으로 타입을 정의하지 않아도 정상적으로 동작할 수 있습니다.

강의에서는 타입을 추론하지 못해서 Volar 공식문서에서 언급이 되어 있는 내용을 언급드린고요. 정상적으로 추론한다면 정의하지 않으셔도 됩니다.

Volar 공식문서 내용

Define Global Components

PR: https://github.com/vuejs/vue-next/pull/3399

Local components, Built-in components, native HTML elements Type-Checking is available with no configuration.

For Global components, you need to define GlobalComponents interface, for example:

// components.d.ts
declare module 'vue' {  // Vue >= 2.7
// declare module '@vue/runtime-dom' {  // Vue <= 2.6.14
  export interface GlobalComponents {
    RouterLink: typeof import('vue-router')['RouterLink']
    RouterView: typeof import('vue-router')['RouterView']
  }
}

export {}

(공식문서 참고링크 : https://marketplace.visualstudio.com/items?itemName=Vue.volar)

 

unplugin-vue-components도 강의와 다르게 동작 한다면 해당 라이브러리에서도 필요성을 느끼지 못해 제외 시켰을 것입니다.

TypeScript를 사용하지 않으신다면 별도로 셋팅하지 않으셔도 됩니다 👍

 

질문드립니다.

0

32

0

unplugin-vue-components 질문드립니다.

0

40

2

강의듣다가 헷갈려서 질문드립니다.

0

35

1

와 짐코딩님 강의 들으면서 느끼는게 많네요.

0

33

1

질문드립니다.

0

32

2

라우터 인스톨 후 실행안됨

1

50

2

코드 자동 포매팅 질문

0

68

2

필터 watchEffect 질문입니다.

0

52

1

json-server 오류가 다른게 뜨네요

0

114

1

미리보기가 안됩니당...

0

69

2

unplugin-vue-components

0

84

2

TypeError 질문

0

52

1

v-model="show" :show="show" 같이 사용?

1

57

1

hash 모드 배포의 필요성?

0

61

2

.eslintrc.cjs 가 없습니다

0

95

2

title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.

0

98

3

_title_like: "", 문의드려요 해당 값을 설정하면 list가 아에 안나옵니다.

0

64

1

@click.prevent="params._page = pageNum"> 에 .value를 안쓰는 이유가 궁금합니다.

0

72

2

중첩된 컴포넌트 문제

0

75

2

교안에 있는 부분이 아닌가요?

0

109

2

useAxios Proxy(Object) RefImpl

0

114

1

axios timeout

0

330

3

강의와 상관은 없지만, 궁금한 점이 있어 질문드립니다.

0

123

2

컴포넌트 분리 부분에서 오류가 나요ㅠㅠ

0

169

2