1.5数组类型定义
一般数组类型定义
const numberArr: number[] = [1, 2, 3]
const stringArr: string[] = ["a", "b", "c"]
const undefinedArr: undefined[] = [undefined, undefined]
这些数组都是唯一类型的,如果数组有多种类型,我们应该如何定义
const arr:(number|string)[]=[1,2,'a']
只要加个(),然后在里边加上|就可以了
数组中对象类型的定义
type dog={
name:string
age:number
}
const mydog:dog[]=[
{name:'x',age:1},
{name:'q',age:2}
]
用type定义类别名会更加方便,对类定义也是可以的
1.6元组的使用和类型约束
元组的基本应用
const a:[string,string,number] = ['h', 'e', 3]
这时候我们就把数组中的每个元素类型的位置给固定住了,这就叫做元组
1.7interface 接口
interface gril{
age:number
name:string
}
const mygril:gril ={
age : 10,
name :'hhh'
}
console.log(mygril)
类型别名可以直接给类型,比如string,而接口必须代表对象
比如我们的类型别名可以写出下面的代码:
type Girl1 = stirng;
但是接口就不能这样写,它必须代表的是一个对象,也就是说,你初始化girl的时候,必须写出下面的形式.
const girl = {
name: "哈哈",
age: 18,
}
接口里的方法
interface gril{
age:number
name:string
[color:string]:any
say():string
}
const mygril:gril = {
age:10,
name:'haha',
color:'pink',
say() {
return 'hello'
},
}
接口间的继承
interface gril{
age:number
name:string
[color:string]:any
say():string
}
interface gril2 extends gril{
work:string
}
const mygril:gril2 = {
age:10,
name:'haha',
color:'pink',
work:'good study',
say() {
return 'hello'
},
}
1.8类的概念和使用
class dog{
name='jack'
bark(){
return 'wawawa'
}
}
const mydog = new dog()
console.log(mydog.bark)
类的继承
class dog{
name='jack'
bark(){
return 'wawawa'
}
}
class dog2 extends dog{
color='pink'
}
const mydog = new dog2()