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 更详细的默认值,请参考案例三
