我使用Rails 5 + Angular2制作一个Web应用程序,我有一个名为" Books"的模型。我的问题是,我有一个名为" books.ts"有代码:
export class Book {
id: number;
author_one: string;
author_two: string;
author_three: string;
title: string;
subtitle: string;
publisher: string;
year: date;
city: string;
edition: number;
volume: number;
pages: number;
ISBN: string;
barcode: string;
}
但是,当我运行" ng serve --port 9000"我收到以下错误:
Cannot find name 'date'.
在我遇到与其他属性相同的问题之前,因为我正在使用"整数",但我将其更改为" number"它起作用,所以我想知道Angular是否不理解某些类型的属性。但在搜索互联网后,我还没有找到如何声明类型变量" date"在Angular。 有没有办法声明日期类型的变量?或者我应该使用字符串并进行某种处理以将其用作日期?
答案 0 :(得分:17)
这是打字稿问题。打字稿中没有date
类型。您可以使用Date
来表示本机javascript Date对象,但这只是字段的输入。 Angular / TS不会为你强迫你的值进入Date对象。如果您的数据来自JSON源,则日期通常只是字符串(JSON不支持日期对象)。
答案 1 :(得分:4)
请检查typescript中支持的数据类型。
https://www.typescriptlang.org/docs/handbook/basic-types.html
那里没有日期数据类型。您可以根据需要使用字符串或任何数据类型。
答案 2 :(得分:1)
改为使用JS日期
{
id: string;
name: string;
description: string;
status: number;
active_from: Date;
active_till: Date;
data: any = {};
created_at: Date;
updated_at: Date;
}
并将其初始化为
{
id: "abc123",
name: "Some name",
description: "Some description",
status: 1,
active_from: new Date("Fri Dec 08 2019 07:44:57"),
active_till: new Date("Fri Dec 08 2020 07:44:57"),
data: {},
created_at: new Date("Fri Dec 08 2019 07:44:57"),
updated_at: new Date("Fri Dec 08 2019 07:44:57"),
}
答案 3 :(得分:0)
javascript中没有日期类型,请使用Date javascript类型。
答案 4 :(得分:0)
您可以更方便地使用moment.js。
import { Moment } from 'moment';
export class Book {
id: number;
author_one: string;
author_two: string;
author_three: string;
title: string;
subtitle: string;
publisher: string;
year: Moment;
city: string;
edition: number;
volume: number;
pages: number;
ISBN: string;
barcode: string;
}