sách gpt4 ăn đã đi

bản đánh máy - Tùy chọn hoặc Loại tùy chọn (Tùy chọn) có ý nghĩa trong TypeScript không?

In lại 作者:搜寻专家 更新时间:2023-10-30 20:35:55 80 4
mua khóa gpt4 giày nike

Haskell、Rust 等语言提供了一个 Maybe hoặc Option 类型。即使在 Java 中,也有一个 Không bắt buộc 现在打字。

为简单起见,我将在剩下的问题中将此类型称为“选项类型”。 “Không bắt buộc类型”显然经常用于描述提供类型注释是可选的情况。

我很好奇以下问题:Option 类型在 TypeScript 这样的语言中有意义吗? Option 类型的优点在其他语言中非常有说服力,我发现自己在使用 TypeScript 编程时缺少这种类型。

基本上,类型系统会强制您显式解包任何可能在 Option 值内的值。是的,TypeScript 的严格空值检查也可以实现这一点,但是,使用 Option 类型为您提供了一种(在我看来)更好的方式来处理潜在的 Không có通过提供 map(f: T -> U): Option 值和 mapOr(f: T -> U, or: U): Option方法等

例如,我希望像下面的代码这样工作:

interface Foo {
member: Option
}
const opt: Option = // ... some initialization
const memberLength: number = opt
.map(x => x.member) // None if x is None, else Some(...)
.map(x => x.length) // None if x.member is None, else Some(x.length)
.unwrapOrElse(() => 0);

这当然是一个非常简单的示例,其中使用 Option 类型有点过度设计。不过,它应该给出一个基本概念。

我目前看不出这是一个坏主意的原因,但据我所知,似乎没有人实现过它。这会对性能产生严重影响吗?还是有任何其他我看不到的问题使它不可行?

Để ý:我(主要)不是在询问如何实现它(尽管这也是一个有趣的话题——但我对此有想法)。我主要关心的是找出为什么似乎还没有人使用这样的东西。

câu trả lời hay nhất

编辑 2019

检查 fp-ts

原始答案

我错过了来自 Scala(和一些 Haskell)的它,所以我为它(和其他几个)制作了自己的库:MM (麻省理工学院许可证)

随意破解、 fork 等……;它是麻省理工学院许可的

关于typescript - Option 或 Optional 类型 (Option) 在 TypeScript 中有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44266974/

80 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress