TypeScript入门篇——基础知识(面试题:浅谈你对TS的理解)

1、TS的数据类型
//1、简单数据类型
 boolean number string array null undefined
//2、多出来的类型
1)tuple(元组类型):let arr[number,string] = [11,'string']

2enum类型(枚举类型)
	enmu color {
	red,
	yellow
}
console.log(color.red) // 1 输出的是地址 且从 1 开始
console.log(color[1]) // red 输出的是内容

3)any为任意类型:let arr:any[] = [1,'string',true] //都是可以的
//3、特别类型
1void:用于方法中,表定义的方法没有返回值

function getName():void{} //可以不进行return  只用于赋值和打印

2、undefined:类型没有多大意义 var a:undefined = undefined

3、null:也没有多大意义 	var b:null = null

2、基本类型的使用方法
let flag:boolean = true
let numbers:number = 1
......

3、函数中的使用

1、不带参的函数

 function getName(){
	return 1
}
function getName():number{ // 写的什么类型 就返回什么
 return 1
}

2、带参的函数

//知道的数据类型
	function getName(name:string,age:number){
		return name + ' - ' + age
	}
//不知道的数据类型 或 多个数据类型
	function getName(name:string|number){
		return 1
}
//彻底无法判断的数据类型
	function getName(name:any){ //什么数据类型都行
		return [22222,1111]
} 
//可传入 可  不传入的参数

	function getName(name:string,age?:number){ //这个 age这实例化方法时可加可不加getName(‘quxiaokang’)
		return name + '-' + age
}


	

3、没有返回值的函数

	function getName (name:string):void{
	console.log(name)
	}
4、接口的使用

1、定义接口对参数进行约束

interface userinfo{
	username:string,
	age:number,
	sex?:string 	//可有可无
	address:string | number //打个比喻 就是 多种类型
}
// 实现参数的约束
const user:userinfo = {
	username:'屈小康',
	age:15,
	sex:'男' //可写可不写
	address:'河南'
}

2、接口的继承

	interface userinfo1 {
	name:string
	}
	interface userinfo2 extends userinfo1 {
	age:number
	}
	const user:userinfo2 = {
	naem:'屈小康',
	age:15
	}
5、类的使用

1、没有继承接口的类(简单的类)

1、不带函数的类
	class Person {
		name:string,
		age:number,
		constructor(name:string,age:number){
			this.name = name 
			this.age = age
		}
	}
	var person = new Person('屈小康',15)
	console.log(person.name) // 屈小康
	
2、带函数的类
	class Person {
		name:string,
		age:number,
		constructor(name:string,age:number){
			this.name = name 
			this.age = age
		}
		getName(){
			return this.name
		}
	}
	var person = new Person('屈小康',15)
	console.log(person.getname())
	
3、类的继承
class Person2 extends Person{
	address:string
	 constructor(name:string,age:number){
	  super(name , age)
  }
  sayHi(){
		console.log('继承了哈 我是 Person2的内容')
	}
	getAge(){
		return this.age
	}
	getName(){
		super.getName()
	}
}

var person = new Person2('屈小康',15)
console.log(person.getAge())
perosn.sayHi()
person.getName() //调用的是	super.getName() 也就是父类的getName

再往后还有静态属性 私有属性 之类的 还有 抽象方法和抽象类 。可能因为我比较菜,用的几乎微乎其微,也称没有用过…
附加我的学习进阶:
初级阶段学习
添加vue学习
项目实战学习
看完这三 就可以了。

你可能感兴趣的:(typescript)