当前位置: 首页 > 知识库问答 >
问题:

前端 - `type Timestamp = number`, 为何不直接这样定义?

郎灿
2024-09-05

我看到有一个Type这样定义:

export type Timestamp = ReturnType<typeof Date.prototype.getTime>;

然后我鼠标移动到: Timestamp上面,显示的是:

type Timestamp = number

然后我移动到:getTime,显示的也是:

(method) Date.getTime(): number

请问下,如果:type Timestamp = number, 为何不直接这样定义,而要使用:

export type Timestamp = ReturnType<typeof Date.prototype.getTime>;

共有3个答案

狄兴业
2024-09-05

可以。

但前者我在看定义的时候,可以一眼看出它表示的是毫秒级时间戳,因为 Date.prototype.getTime 返回的是毫秒。

type Timestamp = number 我只能看出它是时间戳,但具体是毫秒级还是秒级的,要么还得写注释,要么就得结合代码上下文去猜。

这就是所谓的 Self-Documenting Code。

沈飞翔
2024-09-05

这么写如果修改 Timestamp 为其他类型时候,只需要修改 getTime 返回值类型就行了。

陆弘新
2024-09-05

为了将 TimestampDate.getTime 相关联,表达 Timestamp 表示 Date.getTime 的返回值的类型的含义。

 类似资料: