Skip to content

Commit 8cad28e

Browse files
committed
first commit
1 parent c6c07c8 commit 8cad28e

File tree

7 files changed

+418
-34
lines changed

7 files changed

+418
-34
lines changed

package.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,22 @@
99
},
1010
"dependencies": {
1111
"core-js": "^3.6.5",
12-
"vue": "^3.0.0"
12+
"vue": "^3.0.0",
13+
"vue-class-component": "^8.0.0-0"
1314
},
1415
"devDependencies": {
16+
"@typescript-eslint/eslint-plugin": "^2.33.0",
17+
"@typescript-eslint/parser": "^2.33.0",
1518
"@vue/cli-plugin-babel": "~4.5.0",
1619
"@vue/cli-plugin-eslint": "~4.5.0",
20+
"@vue/cli-plugin-typescript": "~4.5.0",
1721
"@vue/cli-service": "~4.5.0",
1822
"@vue/compiler-sfc": "^3.0.0",
23+
"@vue/eslint-config-typescript": "^5.0.2",
1924
"babel-eslint": "^10.1.0",
2025
"eslint": "^6.7.2",
21-
"eslint-plugin-vue": "^7.0.0-0"
26+
"eslint-plugin-vue": "^7.0.0-0",
27+
"typescript": "~3.9.3"
2228
},
2329
"eslintConfig": {
2430
"root": true,
@@ -27,10 +33,11 @@
2733
},
2834
"extends": [
2935
"plugin:vue/vue3-essential",
30-
"eslint:recommended"
36+
"eslint:recommended",
37+
"@vue/typescript"
3138
],
3239
"parserOptions": {
33-
"parser": "babel-eslint"
40+
"parser": "@typescript-eslint/parser"
3441
},
3542
"rules": {}
3643
},

src/App.vue

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
<template>
22
<img alt="Vue logo" src="./assets/logo.png">
3-
<HelloWorld msg="Welcome to Your Vue.js App"/>
3+
<HelloWorld msg="Welcome to Your Vue.js + TypeScript App"/>
44
</template>
55

6-
<script>
7-
import HelloWorld from './components/HelloWorld.vue'
6+
<script lang="ts">
7+
import { Options, Vue } from 'vue-class-component';
8+
import HelloWorld from './components/HelloWorld.vue';
89
9-
export default {
10-
name: 'App',
10+
@Options({
1111
components: {
12-
HelloWorld
13-
}
14-
}
12+
HelloWorld,
13+
},
14+
})
15+
export default class App extends Vue {}
1516
</script>
1617

1718
<style>

src/components/HelloWorld.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
</p>
99
<h3>Installed CLI Plugins</h3>
1010
<ul>
11-
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
12-
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
11+
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target="_blank" rel="noopener">typescript</a></li>
1312
</ul>
1413
<h3>Essential Links</h3>
1514
<ul>
@@ -30,12 +29,16 @@
3029
</div>
3130
</template>
3231

33-
<script>
34-
export default {
35-
name: 'HelloWorld',
32+
<script lang="ts">
33+
import { Options, Vue } from 'vue-class-component';
34+
35+
@Options({
3636
props: {
3737
msg: String
3838
}
39+
})
40+
export default class HelloWorld extends Vue {
41+
msg!: string
3942
}
4043
</script>
4144

src/main.js renamed to src/main.ts

File renamed without changes.

src/shims-vue.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/* eslint-disable */
2+
declare module '*.vue' {
3+
import type { DefineComponent } from 'vue'
4+
const component: DefineComponent<{}, {}, any>
5+
export default component
6+
}

tsconfig.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es5",
4+
"module": "esnext",
5+
"strict": true,
6+
"jsx": "preserve",
7+
"importHelpers": true,
8+
"moduleResolution": "node",
9+
"experimentalDecorators": true,
10+
"allowJs": true,
11+
"skipLibCheck": true,
12+
"esModuleInterop": true,
13+
"allowSyntheticDefaultImports": true,
14+
"sourceMap": true,
15+
"baseUrl": ".",
16+
"types": [
17+
"webpack-env"
18+
],
19+
"paths": {
20+
"@/*": [
21+
"src/*"
22+
]
23+
},
24+
"lib": [
25+
"esnext",
26+
"dom",
27+
"dom.iterable",
28+
"scripthost"
29+
]
30+
},
31+
"include": [
32+
"src/**/*.ts",
33+
"src/**/*.tsx",
34+
"src/**/*.vue",
35+
"tests/**/*.ts",
36+
"tests/**/*.tsx"
37+
],
38+
"exclude": [
39+
"node_modules"
40+
]
41+
}

0 commit comments

Comments
 (0)