我正在阅读有关TypeScript联合类型的官方文档,并且认为它与F#中的“区分联合”相同(尽管它们具有不同的语法但是概念相同),因为我有F#背景并且两者都由微软支持。但是查看文档,F#并没有真正区分“联合类型”和“区分联合”:https://fsharpforfunandprofit.com/posts/discriminated-unions/
然而,TypeScript确实区分这两个概念:
联合类型:https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types 区分联合:https://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions 我在想这些概念本身是否有区别,还是只是依赖于语言的概念?
据我所知,在F#中,联合类型也是区分式联合类型,因为您可以使用匹配表达式和解构来区分联合类型。
但是,在TypeScript中,您无法进行区分,因为该语言没有提供特定的表达式来区分联合类型,因此您需要通过值进行区分,所有联合类型都具有鉴别器。这正确吗?
联合类型:https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types 区分联合:https://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions 我在想这些概念本身是否有区别,还是只是依赖于语言的概念?
据我所知,在F#中,联合类型也是区分式联合类型,因为您可以使用匹配表达式和解构来区分联合类型。
但是,在TypeScript中,您无法进行区分,因为该语言没有提供特定的表达式来区分联合类型,因此您需要通过值进行区分,所有联合类型都具有鉴别器。这正确吗?