我看到有一个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>;
可以。
但前者我在看定义的时候,可以一眼看出它表示的是毫秒级时间戳,因为
Date.prototype.getTime
返回的是毫秒。而
type Timestamp = number
我只能看出它是时间戳,但具体是毫秒级还是秒级的,要么还得写注释,要么就得结合代码上下文去猜。这就是所谓的 Self-Documenting Code。