0.0.0 • Published 3 years ago

@typeshell/semantic v0.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

semantic

Result

Error

我们需要改变使用throw string的习惯,抛出字符串,会失去stacks,对后面的debug非常不友好。 我们应该:

  1. 原生的Error有哪些,尽量在这些Error上进行扩展
  2. 能够设计一种方法,能够快速创建error的特殊类

原生Error

  1. RangeError: 例如,端口号问题,require('net').connect(-1);
  2. ReferenceError: 尝试引用不应该的Error,这个不是我们能用的,是内部触发
  3. SyntaxError: 这个我只能理解为语法层次上的问题
  4. TypeError: 类型不符合预期

TimeStamp:语义化的时间戳

采用数字时间戳(1970以来的毫秒数)可读性很差 采用ISO标准的可读性不错,但里面的 :-. 一定程度对文件系统(扩展名判别),URL带来额外的负担。

因此,我们统一把这些分隔的标点符号变成_,并提供相应的stringify和parse函数。 我们还提供了一种在末尾加入了周六日的简写,在不少场合,这种额外的信息有助于信息回溯,对运维工作有一定的帮助。 这个简写是固定两位,从周日到周六分别是:S0 M1 T2 W3 T4 F5 S6

UTC标准时间:timestamp.utc()

new Date().toISOString():
2019-04-13T04:58:18.809Z

timestamp.utc():
2019_04_13T04_58_18_809Z

timestamp.locale_weekday():
2019_04_13T12_58_18_809Z_S6

带时区偏移(笔者所在东八区)的:timestamp.locale()

new Date().toISOString() + 偏移 :
2019-04-13T04:58:18.809Z-480

timestamp.locale():
2019_04_13T12_58_18_809Z_480

// 加入周六日信息
timestamp.locale_weekday():
2019_04_13T12_58_18_809Z_480_S6

Millis

millis({ year: 3, day: 3 }) => Class Millis(number)

meter

centimeter

Latitude Longtitude