inflearn logo
강의

講義

知識共有

Vue.js + TypeScript 完全ガイド

axiosタイプ定義仕上げ

ListView.vue를 ts로 변경 후 에러가 발생합니다.

601

Yong-Hae Lee

投稿した質問数 3

1

점진적인 타입스크립트 적용 방식 2단계 - 컴포넌트, API 함수 > axios 타입 정의 마무리 > 40초경

ListView.vue의 script부분을 ts로 변경하면 에러가 발생하고 있습니다. 

ListView.vue파일을 ListView.vue.js로 추론하고 있는 것이 문제인 것 같은데, 이를 vue로 인식하게 할 수 있나요?

 

[변경전]

<script>
import { fetchNews } from '@/api';
import ListItem from '../components/ListItem.vue';

export default {
  components: {
    ListItem
  },
  data() {
    return {
      newsItems: [],
    };
  },
  methods: {
    async fetchNewsItems() {
      const response = await fetchNews();
      console.log(response.data);
      this.newsItems = response.data;
    },
  },
  created() {
    this.fetchNewsItems();
  },
}
</script>

 

[변경후]

 
<script lang="ts">
import Vue from 'vue';
import { fetchNews } from '@/api';
import ListItem from '../components/ListItem.vue';

export default Vue.extend({
  components: {
    ListItem
  },
  data() {
    return {
      newsItems: [],
    };
  },
  methods: {
    async fetchNewsItems() {
      const response = await fetchNews();
      console.log(response.data);
      this.newsItems = response.data;
    },
  },
  created() {
    this.fetchNewsItems();
  },
});
</script>

 

[에러 메시지]

ERROR in src/views/CreateListView.ts:1:22

TS2306: File 'C:/test/vue-news-ts/src/views/ListView.vue.js' is not a module.

  > 1 | import ListView from '@/views/ListView.vue';

      |                      ^^^^^^^^^^^^^^^^^^^^^^

    2 | import bus from '../utils/bus';

    3 | import { CreateElement } from 'vue';

    4 |

 

[CreateListView.ts]

import ListView from '@/views/ListView.vue';
import bus from '../utils/bus';
import { CreateElement } from 'vue';

export default function createListView(name: string) {
  return {
    name,
    mounted() {
      bus.$emit('off:progress');
    },
    render(h: CreateElement) {
      return h(ListView);
    },
  };
}

 

 

 

typescript vuejs

回答 2

0

tkaqkeldk5261

enum 은 강의를 사야하는군여 :)

 

 

0

captain

엇 vue 파일을 js로 인식하는 케이스는 처음 보는데요.. script 태그에 lang="ts"를 넣고 Vue.extend() 문법을 쓰셔도 에러가 난다는거죠?

0

Yong-Hae Lee

제가 뭔가 실수를 했었나봐요. 파일을 삭제하고 old상태에서 다시 수정하니 정상 동작하는 것을 확인했어요.

0

captain

아 그렇군요 ㅋㅋ 네 하시면서 또 안되는거 있으면 알려주세요!

composition API에서의 ref

1

239

2

Vue3 + Typescript + Vite + Pinia 참조

3

1844

2

mutation 함수 이름을 enum으로 관리하는 이유

1

342

2

this.todoItem 타입이 any 라고 나옵니다

1

380

1

프로젝트 실행 시 오류가 발생합니다.

1

578

2

두번째 프로젝트 권한 요청 드립니다.

1

368

2

강의자료 ? 노트?

1

353

2

vuex 사용시 mapper 보다는 그냥 쓰는 것이 낫다고 하셨는데요..

1

284

2

권한 허가 부탁드립니다!

1

407

2

Chart.js(3.9.1버전) 안되시는분들 이렇게 해보세요

1

867

2

두번째 프로젝트 권한 요청 드립니다.

1

374

2

두번째 프로젝트 권한 요청드립니다.

1

450

3

두번째 프로젝트 권한 요청 합니다.

1

337

1

두번째 프로젝트 npm i && npm run serve에러 납니다..

1

491

2

두번째 프로젝트 권한 요청 드립니다

1

464

1

두번째 프로젝트 권한 요청 드립니다

1

415

2

두번쨰 프로젝트 권한요청

1

404

3

두번째 프로젝트 권한 요청

1

359

2

두번째 프로젝트 권한부탁드립니다.

1

332

1

권한요청 드립니다.

1

333

1

두번째 프로젝트 권한 요청 드립니다.

1

342

1

project.d.ts 파일관련 문의사항

2

405

2

권한요청입니다.

1

368

2

두번째 프로젝트 권한요청

1

201

2