From 6eac3744f3ea63c351d0d817d3ef205b9673f2fc Mon Sep 17 00:00:00 2001 From: Maxime Mangel Date: Fri, 18 Oct 2024 23:17:31 +0200 Subject: [PATCH] fix: support for union using `Array` interface [converter][web] === changelog === ```ts export type NumberOrNumberArray = number | Array ``` ```fs type NumberOrNumberArray = U2> ``` === changelog === --- src/Glutinum.Converter/Reader/UnionTypeNode.fs | 12 ------------ tests/specs/references/unionType/withArray.d.ts | 1 + tests/specs/references/unionType/withArray.fsx | 12 ++++++++++++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 tests/specs/references/unionType/withArray.d.ts create mode 100644 tests/specs/references/unionType/withArray.fsx diff --git a/src/Glutinum.Converter/Reader/UnionTypeNode.fs b/src/Glutinum.Converter/Reader/UnionTypeNode.fs index 9e5c50b..590f55b 100644 --- a/src/Glutinum.Converter/Reader/UnionTypeNode.fs +++ b/src/Glutinum.Converter/Reader/UnionTypeNode.fs @@ -79,18 +79,6 @@ let rec private readUnionTypeCases | Some declarations -> if declarations.Count = 0 then None // Should it be obj ? - else if declarations.Count > 1 then - let fullName = checker.getFullyQualifiedName symbol - - ({ - Name = typeReferenceNode.getText () - FullName = fullName - TypeArguments = [] - IsStandardLibrary = isFromEs5Lib symbolOpt - }) - |> GlueType.TypeReference - |> List.singleton - |> Some else if isFromEs5Lib symbolOpt then reader.ReadTypeNode typeReferenceNode |> List.singleton diff --git a/tests/specs/references/unionType/withArray.d.ts b/tests/specs/references/unionType/withArray.d.ts new file mode 100644 index 0000000..7cdc46c --- /dev/null +++ b/tests/specs/references/unionType/withArray.d.ts @@ -0,0 +1 @@ +export type NumberOrNumberArray = number | Array diff --git a/tests/specs/references/unionType/withArray.fsx b/tests/specs/references/unionType/withArray.fsx new file mode 100644 index 0000000..30c6097 --- /dev/null +++ b/tests/specs/references/unionType/withArray.fsx @@ -0,0 +1,12 @@ +module rec Glutinum + +open Fable.Core +open Fable.Core.JsInterop +open System + +type NumberOrNumberArray = + U2> + +(***) +#r "nuget: Fable.Core" +(***)