菜鸟java开发学习TypeScript
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了菜鸟java开发学习TypeScript,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4564字,纯文字阅读大概需要7分钟。
内容图文
TypeScript是一门编译型语言,强类型的语言,面向的语言,TypeScript是比javascript更java的script,TypeScript遵循es6规范
1. 安装
如果你的本地环境已经安装了 npm 工具,可以使用以下命令来安装:
npm install -g typescript
创建一个.ts文件,通过命令tsc 文件名.ts
将ts文件编译成js文件来运行(可以同时编译多个 .ts
文件),在与.ts同目录下就会生成一个js文件,可以通过命令$ node 文件名.js
执行代码,或者通过HTML页面引用以执行
2. 基础语法
2.1.基本数据类型以及一些其他关键字
关键字 | 类型 | 对比Java | 实例 |
---|---|---|---|
any | 任意类型 | Object | |
number | 数字类型 | 整数型+浮点型 都用这一个 | let obj:any:="xxx" |
string | 布尔类型 | String | let name: string = "aaa"; let words: string = `我是 ${ name } ``(用于拼接字符串) |
boolean | 布尔类型 | boolean | let flag: boolean = true; |
any[] / Array<any> |
数组类型(未知长度) | new List<Object> |
let arr: number[] = [1, 2];let arr: Array<number> = [1, 2]; |
let x: [string, number] |
元组(已知长度) | new List(4); |
let x: [string, number]; x = [‘Runoob’, 1]; //运行正常;x = [1, 'Runoob'];//报错 这个必须对号入座 |
let x:any|any|... |
联合类型 | new Object(); |
let a:string|number|boolean=xxx |
enum | 枚举 | enum | enum Color {Red, Green, Blue};let c: Color = Color.Blue;console.log( c ) // 输出 2 |
void | 函数无返回值类型 | void | function hello(): void { alert(“Hello Runoob”);} |
null、undefined | 空值,未定义 | null | |
never | 其它类型(包括 null 和 undefined)的子类型 | 代表从不会出现的值 |
2.2. 面向对象
2.2.1. 类
类的定义:
class Obj{
field1:"aaa";
field1:"bbb";
run():void {
console.log("run method")
}
// 构造函数
constructor(engine:string) {
this.engine = engine
}
}
var obj = new Obj();
obj.run();
这段代码编译成*原生js*代码,就是:
var Obj= /** @class */ (function () {
function Obj() {
}
Obj.prototype.run= function () {
console.log("run method");
};
return Obj;
}());
var obj = new Obj();
obj.run();
类的继承:(同样也是单继承,但支持多重继承)
单继承:
class Shape {
Area:number
constructor(a:number) {
this.Area = a
}
}
class Circle extends Shape {
disp():void {
console.log("面积: "+this.Area)
}
}
var obj = new Circle(223);
obj.disp()
多重继承:
class Root {
str:string;
}
class Child extends Root {}
class Leaf extends Child {} // 多重继承,继承了 Child 和 Root 类
var obj = new Leaf();
obj.str ="hello"
console.log(obj.str)
涉及到一些关键字和运算符:
static 关键字:(和java完全一致,就是一个静态,就不做记录了)
instanceof 运算符:(同java)
访问控制修饰符:(除了没有default,其余三种都可用,作用同java)
implements关键字:(同java)
2.2.2. 接口
接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,
让具体的类执行具体的方法。ts的接口会比java的范围更广。
①基本用法
对类:
interface Iprinter{orinting(msg:string):string;}
//实现接口
class colorprinter implements Iprinter{
Printing(msg:string):string{return "a"+msg} //必须实现所有接口
}
let p1=new colorprinter()
let val=p1.Printing("out")
console.log(val)
②扩展(比java更广的地方)
对类:
interface IPerson { //与java命名规范一致,首字母大写
field1:string,
field2:number,
run: ()=>string
}
//继承接口?(还是习惯叫实现,可以多实现)
var customer:IPerson = {
firstName:"Tom",
lastName:"Hanks",
sayHi: ():string =>{return "Hi there"}
}
对函数的约束:
interface Imyfunction{(a:string,b:number):boolean;}
let fun1: Imyfunction;
fun1=function(a:string,b:number):boolean{return false;}
对数组:
interface Istuarr{[index:number]:string;}let arr1:Istuarr;arr1-["aaa","bb"] console.1og(arr1[0])
对json:
interface Idata{
name:string,
age : number,
readonly test1:boolean,//只读
test2?:any //非必须
}
function showdata(n:Idata){
console.log(JSON.stringify(n)
}
showdata({name: "zhangsan", age:19})
2.3 . 函数的定义
参数的定义:
//可选参数(一般放到参数列表最末)----支持不声明类型
function show(age? : number, name) : void{ console.log(name, age) }
show(10,"zhangsan")
//默认参数
function show(age: number=12) : void{ console.log(name, age) }
//剩余参数
function add1(x1,x2,...x:number[]): number{
var sum=0
x.forEach((item,index)=>{
sum+=item
})
return x1+x2+sum
函数重载(同java)
2.4. 泛型(同java)
函数:
function printarr<T>(arr:T[]):void{
for(var item of arr){console.log(item) }
}
printarr<number>( [11,22, 33,441)
printarr<string>(["aa","bbb","cc"])
类:
class myArraylist{
public list:T[]=[];
add(val:T): void{
this.list.push(val)
}
}
var arr=new myArraylist<number>()
arr.add(11)
arr.add(22)
console.log(arr.list)
接口:
interface Iadd{
(x:T,y:T):T;
}
var add:Iadd<number> add=function(x: number,y: number){ return 1111}
大概就这么多了,从java起步了解ts时,就像看他的一项继承语言一样,相比起java,虽已经无限靠近,但还是很多欠缺之处,规范还是不够规范,然后理解起来比较容易,感觉掌握了javaee,就可以来学习ts了
内容总结
以上是互联网集市为您收集整理的菜鸟java开发学习TypeScript全部内容,希望文章能够帮你解决菜鸟java开发学习TypeScript所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。