当前位置: 首页 > news >正文

网站开发工程师培训班资源平台

网站开发工程师培训班,资源平台,做网站如何写需求,新手怎么做html5网站准备工作 新建一个基于ts的vue项目 通过官方脚手架构建安装 # 1. 如果没有安装 Vue CLI 就先安装 npm install --global vue/cli最新的Vue CLI工具允许开发者 使用 TypeScript 集成环境 创建新项目。 只需运行vue create my-app 然后选择选项#xff0c;箭头键选择 Manuall…准备工作 新建一个基于ts的vue项目 通过官方脚手架构建安装 # 1. 如果没有安装 Vue CLI 就先安装 npm install --global vue/cli最新的Vue CLI工具允许开发者 使用 TypeScript 集成环境 创建新项目。 只需运行vue create my-app 然后选择选项箭头键选择 Manually select features确保选择了 TypeScript 和 Babel 选项 在已存在项目中安装typescript 在建好的vue项目中执行 vue add vue/typescript和之前js构建的项目结构没有什么不同主要是js后缀变成了ts后缀还多了tsconfig.json、shims-tsx.d.ts、shims-vue.d.ts这几个文件这几个文件的主要功能如下 tsconfig.json: typescript配置文件,主要用于指定待编译的文件和定义编译选项 shims-tsx.d.ts: 允许.tsx 结尾的文件在 Vue 项目中编写 jsx 代码 shims-vue.d.ts: 主要用于 TypeScript 识别.vue 文件Ts 默认并不支持导入 vue 文件 TS特点 类型注解、类型检测类接口泛类装饰器类型声明 类型注解和编译时类型检查 使用类型注解约束变量类型编译器可以做静态类型检查使程序更加健壮 类型基础 // 类型注解 let var1: string;var1 Jenney // var1 1 // no ok// 类型推断 let var2 true; // var2 1 // no ok// 常见原始类型: string,number,boolean,undefined,null,symbol// 类型数组 let arr: string[] arr [tom, jerry]// 任意类型any let varAny: any; varAny tom varAny 1let arrAny: any[] arrAny [1, true, free]// 函数中类型约束 //(第一个string代表参数必须有且是string类型第二个string代表返回值必须有且是string类型) function greet(person: string): string {return hello, person } const ret greet(tom)// void类型常用于没有返回值的函数function warn(): void {}类型别名 type 使用类型别名自定义类型,以达到类型复用 // let Foobar1 : { foo: string, bar: number } // let objType1 { // foo: fooo, // bar: 1 // } //以上方法类型无法复用 // 使用type定义类型别名使用更便捷还能复用 type Foobar { foo: string, bar: number } let objType: Foobar objType {foo: fooo,bar: 1 }范例 //1.使用类型别名定义Featuretypes/index.ts export type Feature {id: number,name: string }//2.使用自定义类型HelloWorld.vue templatediv classhelloli{{features.name}}!-- li v-foritem in features :keyitem.id{{item.name}}/li --/li/div/templatescript langts import { Component, Prop, Vue } from vue-property-decorator; // 导入 import { Feature } from /types;Component export default class HelloWorld extends Vue {Prop() private msg!: string;features: Feature {id:1,name:类型注解} } /script style scoped /style接口 interface和接口别名的功能一致 interface Barfoo {foo: string;bar: number; }类型别名和接口区别 type vs interface 官方文档 总结 在大部分情况下完全可以互换 1.大部分的区别是IDE(代码提示)的影响对程序本身不影响 2.在2.7版本前不支持类型别名在通用性来讲接口更好点 1如果要写通用的库建议用接口 2但是在使用别名的时候语义的感觉和描述更强一些所以如果是简单的功能用别名更好一下 联合类型 | 希望某个变量或参数的类型是多种类型其中之一 let union: string | number; union 1; // ok union 1; // ok交叉类型 并集 想要定义某种由多种类型合并而成的类型使用交叉类型 type First {first: number}; type Second {second: number}; // FirstAndSecond将同时拥有属性first和second type FirstAndSecond First Second;函数 //必填参:参数一旦声明就要求传递且类型需符合 function greeting(person: string): string {return Hello, person; } greeting(tom)//可选参数:参数名后面加上问号变成可选参数 function greeting(person: string, msg?: string): string {return Hello, person; }//默认值 function greeting(person: string, msg ): string {return Hello, person; }//函数重载// 重载1 function watch(cb1: () void): void; // 重载2 function watch(cb1: () void, cb2: (v1: any, v2: any) void): void; // 实现 function watch(cb1: () void, cb2?: (v1: any, v2: any) void) {if (cb1 cb2) {console.log(执行watch重载2);} else { console.log(执行watch重载1);}}类 ts中的类和es6中大体相同这里重点关注ts带来的访问控制等特性 // 03-class.ts class Parent {// 私有属性不能在类的外部访问 private _foo foo; // 保护属性可以在子类中访问protected bar bar;// 参数属性:构造函数参数加修饰符能够定义为成员属性 constructor(public tua tua) {}// 方法也有修饰符private someMethod() {}// 存取器:属性方式访问可添加额外逻辑控制读写性 get foo() {return this._foo;}set foo(val) {this._foo val;} }范例:利用getter设置计算属性Hello.vue template li特性数量:{{count}}/li /template script langts export default class HelloWorld extends Vue { // 定义getter作为计算属性get count() {return this.features.length;} } /script泛型 泛型(Generics)是指在定义函数、接口或类的时候不预先指定具体的类型而在使用的时候再指定类型的一种特性。以此增加代码通用性。 具体看文档此处简单说下 interface Result {ok:0|1;data: Feature[]; } // 以上写法不通用 // T成了通用的可以动态的指定类型可以让程序的类型变的更加通用 interface ResultT {ok: 0 | 1;data: T[]; }//泛型方法 function getResultT(data: T): ResultT {return {ok:1, data}; }getResultstring()泛型优点 函数和类可以支持多种类型更加通用不必编写多条重载冗长联合类型可读性好灵活控制类型约束 不仅通用且能灵活控制泛型被广泛用于通用库的编写。
http://www.dnsts.com.cn/news/2043.html

相关文章:

  • 那个网站可以做司考真题网络营销做得好的品牌
  • 做网站挣钱个人网站的制作模板
  • 平面设计作品赏析怎么做网站关键词优化
  • 大连华南网站建设营销策略主要包括哪些
  • 素材网站的图可以做海报吗谷歌优化工具
  • 做舞美的好素材网站j网络营销策略的特点
  • vi品牌设计公司vi设计seo网络优化是什么工作
  • 武汉地铁计划建设在哪个网站查看b站视频下载软件
  • python基础教程代码班级优化大师免费下载app
  • 东莞公众号开发公司想找搜索引擎优化
  • seo发帖网站国外浏览器搜索引擎入口
  • wordpress百度秀长沙seo优化报价
  • 有哪些网站是做背景图片素材的seo整站排名
  • flash网站建设技术...品牌推广方案包括哪些
  • 石家庄模板建站行业解决方案seo外链资源
  • 为什么没人做团购网站巨量引擎
  • wordpress给用户自动注册自己怎么做网站优化
  • 邯郸单位网站建设域名注册后怎么使用
  • 更换wordpress主题头部seo优化及推广如何运营
  • 罗湖网站建设价格优化关键词排名的工具
  • 什么是门户类型的网站百度推广官方网站登录入口
  • 深圳做网站推广公司张家界网站seo
  • 电商网站图片是谁做媒体平台推广
  • 甘肃住房城乡建设厅网站如何搭建企业网站
  • 可以做问卷的网站有哪些常见的线下推广渠道有哪些
  • 太原网站建设服务热线网络优化的三个方法
  • wordpress 登录不了seo优化信
  • 武汉市住房和城乡建设局网站上海哪家seo好
  • 北京做网站的网络整合营销是什么意思
  • 扁平图标网站网站优化课程培训