gpt4 book ai didi

typescript - 如何在 TypeScript 中处理 ISO 日期字符串?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:18 24 4
gpt4 key购买 nike

我是 typescript 的新手,所以我想掌握它。

网络请求将返回一个包含 ISO 日期字符串格式字段的 JSON 对象。

data : Data = {when: "2016-07-13T18:46:01.933Z"}

当我为此接口(interface)创建类型签名时,是否有任何方法可以指定这实际上是一个 ISO 时间戳,还是我只需要使用字符串?

interface Data {
when: string
}

我发现我可以使用类型别名,它在精神上有帮助,但并不能真正验证 ISO 字符串。

type iso = string
interface Data {
when: iso
}

以类似的方式,我很好奇是否可以从这些 typescript 注释中生成 js 验证,以便我可以验证端点接收到的信息,否则我输入的应用程序的其余部分将毫无值(value)。

如果这是可能的,那么如果可以将此 iso 字符串强制转换为实际的 Date 对象,那将非常酷。

正如我所说,我是 typescript 的新手,所以我不确定这是否超出了 typescript 应该做的范围。

最佳答案

您可以使用 Type Guard .

import moment from 'moment'

export const isISO = (input: any): input is tISO =>
moment(input, moment.ISO_8601, true).isValid()

然后您可以使用您想要处理任何错误日期的任何自定义逻辑,例如:

const maybeISO = fetch('Maybe ISO')

if (isISO(maybeISO)) {
// proceed
} else {
// check other format?
// log error?
}

干杯。

关于typescript - 如何在 TypeScript 中处理 ISO 日期字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com