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