1.1TypeScript的静态类型
定义静态类型
const a:number =1
:number就是定义了一个静态类型,永远是数字类型不可改变
自定义静态类型
interface gril{
age:number
name:string
}
const mygril:gril ={
age : 10,
name :'hhh'
}
console.log(mygril)
如果你声明的变量,跟自定义变量不一样,就会报错
1.2基础静态类型和对象类型
在 TypeScript 静态类型分为两种,一种是基础静态类型,一种是对象类型
基础静态类型:
在声明变量的后面加上:,然后加上对应的类型
const s :number = 1
const a : string = 'peiqi'
类似的基础类型还有null,undefinde,symbol,boolean,void等
对象类型
- 对象类型
interface gril{
age:number
name:string
}
const mygril:gril ={
age : 10,
name :'hhh'
}
console.log(mygril)
- 数组类型
const arry:number[] = [1, 2, 3]
- 类类型
class dog{
name:string
age:number
constructor(name:string, age:number){
this.name=name
this.age=age
}
}
const mydog:dog={
name:'xiaohei',
age:1
}
console.log(mydog);
- 函数类型
function dog(name:string, age:number):string{
console.log(name, age)
return 'yes'
}
console.log(dog('xiaohei', 1))
1.3类型注解和类型推断
类型注解
const a:number
a = 123
告诉代码我们的a变量就是一个数字类型,这就叫做类型注解
类型推断
let a = 1
我们并没有告诉变量a是一个数字类型,但是在赋值时TypeScript自动把变量注释为number类型
因此我们可以利用类型推断,来简化代码
eg:不需要类型注解
let a = 1
let b = 2
let c = a + b
eg:需要类型注解
function c(a, b){
return a + b
}
const d = c(1, 2)
这种形式就需要类型注解,a 和 b 会显示为any类型,导致逻辑错误
修正:
function c(a:number, b:number){
return a + b
}
const d = c(1, 2)
console.log(d)
当a和b有类型注解时,TypeScript就自动进行类型推断出d为number类型