初中自学JAVA从入门到放弃java。我大概学了一个月。学了一个多月,看了视频和这些,就放弃了编程。.依稀记得那段日子特别辛苦,我觉得那时候学javaScript就好了。说实话,现在typeScript真的很流行。听过一句话,大项目,好公司,一定要用typescript和React。没有理由。这并不是说其他??技术不好,而是说大项目最好。好的TS,可以为我们后期的代码维护和前期调试节省很多时间。Node.js快速搭建微信公众号服务器Node.js快速搭建服务器+前后端数据库Session交互ES6教程全前端中大厂面试必问原生javaScript操作想学typeScript我觉得必须先了解nativejavaScript非常精通,最基础的知识最重要,然后需要掌握ES5+ES6+ES7(7以后最好懂一些),掌握之后就不会那么累了新技术。typeScript=type+javaScript,在ES5/6/7+javaScript的基础上增加了一个type!TS相对于JS来说真的很严格,只要不匹配接口或者值类型,或者参数个数不对,修改值和原值的类型不一致就会报错.推荐使用npm全局安装typeScript,然后使用tsc*.ts编译ts文件。typeScript的新核心概念:'letapp:string=2;这段代码会报错,因为值2是数字,而指定的app是string类型,所以TS中会报错的新值的类型:any:可以是任意类型vold:一个空的返回类型,比如functionmove():vold{}意思是这个函数没有返回值,如果改成any,那么这个函数返回什么类型就什么,但是必须返回,否则TS会报错新概念:type推理letapp='hello';应用=1;这段代码会报错,因为TS把他看成letapp:string='hello',再改app的值,必须是string类型,否则会报错,这个是类型推断联合类型letapp:串|数字='你好';应用程序=1;这段代码不会报错,因为app是一个联合类型变量,可以是string也可以是number,只要符合其中一种类型即可,当然你也可以多写。Interface接口(前端程序员比较难理解的一点)javaScript也是一种面向对象的语言,但是在ES5中是基于原型实现的,而在ES6中使用的是class类,这样就可以理解这个名词了object-oriented更清晰,但是TS中的实际面向对象更完整,它和Java等其他语言一样,通过接口和类完成面向对象编程。你可以把对象想象成一个女人(在TS中抽象成一个变量letapp)。我们使用一个接口来描述这个女人(在TS中使用letapp:interfacename)最后使用一些方法获取这个女人的联系方式(在TS中使用class类中的方法来实现)例如:classask{name:细绳;电话?:数字;//这里为什么要加问号,因为你可能拿不到她的号码,如果拿不到,那你可以不传参数,但是如果不加呢?而你没有那个号码,那么如果你不传入参数,TS会报错age:number;构造函数(姓名、年龄、电话){this.name=name;this.age=年龄;this.tel=tel}}接口检查{name:string;年龄:数字;电话?:数字;}letwoman:check=newask('rose',20,1888888888);//假设你把美女所有的数据都传给了构造函数这样你就可以打印一个console.log(woman)看看是什么喜欢。上面的代码没有报错。以上代码通过tsc命令编译成js文件后varask=/*@class/(function(){functionask(name,age,tel){this.name=name;this.age=age;this.tel=tel;}returnask;}());letwoman=newask('rose',20,1888888888);console.log(woman)"这里需要注意的是很多TS代码不会出现在编译后的JS文件中,比如const枚举,interface等的枚举,当然还会有更多的"------------###元组的概念数组在JS中可以存储大量的内容,所谓的元组,其实就是不同数据类型的数组[1,'1',true,false]其实这是一个元组,只是叫法不同罢了。------###枚举enum和constenumenum的区别app{red,blue,pink,deeppink}console.log(app.red,app.blue,app.pink,app.deeppink)//输出0,1,2,3enumapp2{red=2,blue,pink,deeppink}console.log(app2.red,app2.blue,app2.pink,app2.deeppink)//输出2,3,4,5枚举的默认第一个值为0;你也可以自己定义它。如果自定义与系统默认冲突,TS将无法识别,也不会报错,但我不建议你这样做。毕竟没有人找麻烦呢?###还有一个常量枚举constenumDirections{Up,Down,Left,Right}letdirections=[Directions.Up,Directions.Down,Directions.Left,Directions.Right];//结果为0123*如果包含计算成员,编译阶段会报错:*constenumColor{Red,Green,Blue="blue".length};*常量枚举和普通枚举的区别是会被Deleted,不能包含计算成员。类和接口一目了然(最重要的一个)*一个类一次只能继承一个接口,但可以同时对应多个接口*实现多类继承,使用子类继续继承其他类,循环往下接口检查{name:string;age:number;hobby:Array
