一、安装typescript及loader
1 | npm install typescript ts-loader --save-dev |
二、安装vue-property-decorator
1 | npm install vue-property-decorator --save-dev |
三、配置vue.config.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | module.exports = { configureWebpack: { resolve: { extensions: [ ".ts" , ".tsx" , ".js" , ".json" ] }, module: { rules: [ { test: /\.tsx?$/, loader: 'ts-loader' , exclude: /node_modules/, options: { appendTsSuffixTo: [/\.vue$/], } } ] } } } |
四、新建tsconfig.json放在项目根目录
1 2 3 4 5 6 7 8 9 10 | { "compilerOptions" : { "target" : "es5" , "module" : "commonjs" , "strict" : true , "strictNullChecks" : true , "esModuleInterop" : true , "experimentalDecorators" : true } } |
五、在src目录下新建vue-shim.d.ts文件
1 2 3 4 | declare module "*.vue" { import Vue from "vue" ; export default Vue; } |
六、运行测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <template> <div> <el-button type= "primary" @click= "msgBtn" >{{msg}}</el-button> <el-card shadow= "always" > {{test}} </el-card> </div> </template> <script lang= 'ts' > import { Component, Vue } from "vue-property-decorator" ; export default Vue.extend({ components: { // TableCom }, data() { return { msg: 'typescript' }; }, created(){ console.log( 'created' , this .msg) }, mounted() { console.log( 'mounted' ) }, computed:{ // test: { // // 需要标注有 `this` 参与运算的返回值类型 // get(): string { // return this.msg // }, // set(val: string) { // this.msg = val // } // } test(): any { return this .msg } }, watch:{ msg(val:any){ console.log( 'watch' ,val) } }, methods:{ msgBtn(ev:any){ this .msg = "更改了typescript" console.log( '点击事件' ,ev) } } }) </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了