在 TypeScript 中,用于表示日期和时间的类型通常是 Date
。当你从 SQLite 数据库或其他任何来源获取日期时间数据时,你可以将其转换为 JavaScript 的 Date
对象,这与 TypeScript 中的 Date
类型兼容。
所以,对于你的接口 Test
,使用 Date
类型来表示 createTime
和 updateTime
是合适的,因为这些字段将会包含 JavaScript Date
对象,这些对象能够表示 SQLite datetime
类型的值。
你的接口定义是正确的:
interface Test {
id: number;
name: string;
desc: string;
selected: boolean; // 是否选中
createTime: Date;
updateTime: Date;
}
当从 SQLite 数据库检索日期时间值时,你需要确保将其正确转换为 JavaScript Date
对象。这通常涉及到解析从数据库获取的字符串格式(如 "2024-06-04 11:32:59")到 Date
对象。
例如,如果你使用 Node.js 的 sqlite3
库,你可能会这样做:
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database(':memory:');
db.serialize(() => {
db.run("CREATE TABLE lorem (info TEXT, createTime TEXT)");
let stmt = db.prepare("INSERT INTO lorem (info, createTime) VALUES (?, ?)");
stmt.run('Ipsum', '2024-06-04 11:32:59');
stmt.finalize();
db.each("SELECT rowid AS id, info, createTime FROM lorem", (err, row) => {
const createTime = new Date(row.createTime); // 将字符串转换为 Date 对象
const testObj: Test = {
id: row.id,
name: 'Example Name', // 假设其他字段的值
desc: 'Example Description',
selected: false,
createTime,
updateTime: new Date() // 假设当前时间为更新时间
};
// 使用 testObj 进行后续操作...
});
});
db.close();
在上面的代码中,我们首先从 SQLite 数据库检索一个 createTime
字符串,然后将其转换为 Date
对象,该对象随后用于填充我们的 Test
接口实例。对于 updateTime
,我们假设使用当前时间作为更新时间,并使用 new Date()
来获取它。