如何在TypeScript中正确指定日期(Date)类型?
你好!我刚开始从JavaScript学习TypeScript,在处理日期时遇到了一个令人困惑的情况。
假设我有一个函数,它接受用户的出生日期并返回年龄:
```typescript
function calculateAge(birthDate) {
const today = new Date();
const diff = today.getTime() - birthDate.getTime();
return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));
}
```
在JavaScript中,我只需传入`new Date('1990-05-15')`就能正常工作。但TypeScript报错说参数`birthDate`具有隐式类型`any`。我尝试写成`birthDate: Date`,但这样我就不能传入字符串`'1990-05-15'`或数字`631152000000`(timestamp)——编译器会报错。
另外,我有一个用户接口:
```typescript
interface User {
name: string;
createdAt: ???; // 这里写什么?
lastLogin: ???; // 这里呢?
}
```
我看到`new Date()`返回`Date`,但JSON数据是以字符串形式传入的。