My setup: I installed Vue and Vite via the create-vite-app module, and then updated all the packages that was generated by 'init vite-app' to the very latest RC versions for Vue and Vite.
Now I want to use typescript for all my code. First I just played around a little bit, and added the lang="ts" to the tag in HelloWorld.vue. That seems to work, though I have no idea how typescript gets transpiled from the vue file though.
Then I tried to rename the main.js to main.ts. Now nothing happen.
I was thinking that I just need to install typescript, but then it hit me, why is it working in the .vue component then? Am I doing something wrong if I install typescript now?
Why does typescript work in the vue module (HelloWorld), but no js is generated from the *.ts file?
I will create a vite project to use typescript step by step:
$ npm init vite-app <project-name>
$ cd <project-name>
$ npm install
$ npm install typescript
tsconfig.json
file in the root folder, like this:{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"isolatedModules": true,
"noEmit": true
}
}
And you can check here, What is a tsconfig.json
shims-vue.d.ts
file in the src
folder, like this:declare module "*.vue" {
import { defineComponent } from "vue";
const Component: ReturnType<typeof defineComponent>;
export default Component;
}
The shims-vue.d.ts
file helps your IDE to understand what a file ending in .vue
is.
Now, we can check whether the .ts
file works well.
In my case, i rename the main.js
file to main.ts
in the src
folder,
and modify the index.html
, 12 line:
<script type="module" src="/src/main.js"></script>
to
<script type="module" src="/src/main.ts"></script>
At last, run
npm run dev
If there is no error message, you can create your component file by .ts
Good luck!