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

我看到有一个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>;
阅读 1.6k
3 个回答

可以。

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

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

这就是所谓的 Self-Documenting Code。

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

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

推荐问题
logo
Microsoft
子站问答
访问
宣传栏