default 默认值
2025/4/16小于 1 分钟
default 默认值
说明
创建对象时候属性的默认值,基本类型用 default
,复杂类型用 autowired
或者函数
案例
普通类型模型
模型
class Test extends ModelBase {
@Column({ default: 1 })
public num?: number
@Column({ default: "hhh" })
public str?: string
@Column({ default: true })
public bool?: boolean
}
实例初始化
const test = new Test({
str: "xxx",
})
修改实例
test.bool = false
打印日志
console.log(test.num)
// 1
console.log(test.str)
// "xxx"
console.log(test.bool)
// false
数组和对象模型
模型
class TestItem extends ModelBase {
@Column()
public message?: string
}
class Test extends ModelBase {
@Column({
model: () => TestItem,
default: () => [],
})
public arrAuto?: TestItem[]
@Column({
model: () => TestItem,
default: () => [],
})
public arrDef?: TestItem[]
@Column({
model: () => TestItem,
autowired: true,
})
public obj?: TestItem
}
实例初始化
const test = new Test()
打印日志
// Array 和 Object 类型使用 autowired: true 与 default: true 效果一致
console.log(test.arrAuto, test.arrDef)
// [],[]
// 用于 Array 和 Object 类型建议使用autowired
console.log(test.obj)
// { message: undefined }
默认值为函数类型
模型
class TestItem extends ModelBase {
@Column()
public message?: string
}
class Test extends ModelBase {
@Column({
model: () => TestItem,
default: () => [
{
message: 'msg1',
},
],
})
public arr?: TestItem[]
@Column({
model: () => TestItem,
default: () => ({
message: 'msg2',
}),
})
public obj?: TestItem
}
实例初始化
const test = new Test()
打印日志
console.log(test.arr)
// [{ message: "msg1" }]
console.log(test.obj)
// { message: "msg2" }
注意事项
default
推荐用于普通类型- 如果需要给 Array 或者 Object 进行初始化,请参考
autowired
- 如果初始化时需要给 Array 或者 Object 更详细的默认值,请参考案例三