TypeScript中TypeORM实体time字段编译报错的修复咨询
修复TypeORM实体类的TypeScript编译错误
错误原因
两个编译错误的核心原因是time属性的类型声明错误:
- TS2304:TypeScript不存在名为
time的内置类型,编译器无法识别该类型名称 - TS4031:由于
time类型未定义,导致公共属性依赖了一个不存在的未定义名称
修复方案
将实体类中time属性的类型改为Date,TypeORM会自动将Date类型映射为数据库对应的时间字段(如datetime、timestamp)。如果需要指定数据库字段的具体类型,还可以给@Column装饰器添加参数。
修改后的实体类代码
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class virtual_user { @Column() domain_name: string; // 注意:@PrimaryGeneratedColumn用于生成自增主键ID,若要用email作为主键,应替换为@PrimaryColumn() @PrimaryGeneratedColumn() email: string; @Column() password: string; // 修复类型为Date,可指定数据库字段类型 @Column({ type: 'datetime' }) time: Date; @Column() department: string; @Column({ default: 1 }) status_id: number; }
额外提示:@PrimaryGeneratedColumn的作用是生成自增数值型主键,如果你希望email作为实体的主键,建议将其替换为@PrimaryColumn(),避免TypeORM尝试给邮箱字段生成自增数值。
内容的提问来源于stack exchange,提问作者Said Dias
相关产品推荐
相关产品推荐

