【发布时间】:2021-10-09 15:21:07
【问题描述】:
在 AdonisJS 的 this example 中,Post 类定义包括 @column 部分。有人可以解释这是做什么的吗?我假设它在 Post 类中创建了多个“列”类的实例作为成员变量,每个实例都有不同的名称和数据类型。但这是如何工作的?@ 符号是干什么用的?
import { column, BaseModel } from '@ioc:Adonis/Lucid/Orm'
export default class Post extends BaseModel {
@column({ isPrimary: true })
public id: number
@column()
public title: string
@column()
public description: string
}
以下是否等效(没有定义的数据类型)?
export default class Post extends BaseModel
{
constructor()
{
this.id = new column({ isPrimary: true });
this.title = new column();
this description = new column();
}
}
更新:
在意识到 AdonisJS 是用 TypeScript 编写后,我找到了this,它回答了这个问题。
【问题讨论】:
-
@通常指“装饰者”,目前为Stage 2 Proposal for ECMAScript。
标签: javascript class inheritance class-properties