TypeScript

73 阅读2分钟

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,booleanvoid

对象类型

  • 对象类型
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)

ab有类型注解时,TypeScript就自动进行类型推断出dnumber类型