Typescript学习:类class可选属性与函数可选参数

829 阅读1分钟

2023-06-09

类可选属性

  • 在构造函数中需要使用,构成可选,同时过滤undefined
class Person {
  name: string
  age?: number = 18   //设置可选,且有默认值;下同;
  constructor(name: string, age?: number) {
    this.name = name
    //如果age不为undefined时,则返回值;否则使用默认值
    if (age) this.age = age
  }
  hello(): void {
    console.log('我是', this.name, '我今年', this.age, '岁了')
  }
}

let xm = new Person('小风')   //取默认值18,不是返回undefined
let ed = new Person('二蛋', 19)
console.log(xm,ed)
xm.hello()
ed.hello()
  • 构造函数参照函数可选参数设置,更方便!!
class Person {
  name: string
  age: number
  // 在构造函数中设age为可选且有默认值;比上面更优
  constructor(name: string, age: number = 18) {
    this.name = name
    this.age = age
  }
  hello(): void {
    console.log('我是', this.name, '我今年', this.age, '岁了')
  }
}

let xm = new Person('小风')
let ed = new Person('二蛋', 19)
console.log(xm,ed)
xm.hello()
ed.hello()

函数可选参数

  • 使用,可选时为undefined;
  • 使用默认值时,可选时为默认值,不加;函数定义自动加了
let fn = function (name: string, age: number = 18): void {
  console.log(name, age);
}

// fn的定义为:
// let fn: (name: string, age?: number) => void
fn('小风')    // 小风 18
fn('二蛋', 19)    // 二蛋 19