From 7ff3467d35a00974adb2dd517a57558bda0f4c69 Mon Sep 17 00:00:00 2001 From: walon Date: Sat, 27 Nov 2021 13:27:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20proto=20typescript=E5=AF=B9=20TFlong=E5=8F=8ATlong?= =?UTF-8?q?=20bigint=E6=83=85=E5=86=B5=E4=B8=8B=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8F=8A=20array=E7=B1=BB=E5=9E=8B=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=9A=84=E7=BC=96=E8=AF=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...scriptBinUnderingDeserializeVisitorBase.cs | 21 ++++++++++++++++++- .../TypescriptCtorValueVisitor.cs | 8 +++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs index 16167bc..fd6597f 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs @@ -76,7 +76,26 @@ namespace Luban.Job.Common.TypeVisitors public abstract string Accept(TBean type, string bufVarName, string fieldName); - private string GetNewArray(TArray arrayType, string size) + + + public static string GetNewArray(TType elementType) + { + switch (elementType) + { + case TByte _: return "new Uint8Array()"; + case TShort _: + case TFshort _: return "new Int16Array()"; + case TInt _: + case TFint _: return "new Int32Array()"; + case TLong _: + case TFlong _: return "new Int64Array()"; + case TFloat _: return "new Float32Array()"; + case TDouble _: return "new Float64Array()"; + default: return "[]"; + } + } + + public static string GetNewArray(TArray arrayType, string size) { switch (arrayType.ElementType) { diff --git a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptCtorValueVisitor.cs b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptCtorValueVisitor.cs index b4bf22c..c33a00b 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptCtorValueVisitor.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptCtorValueVisitor.cs @@ -39,12 +39,12 @@ namespace Luban.Job.Common.TypeVisitors public string Accept(TLong type) { - return "0"; + return type.IsBean ? "BigInt(0)" : "0"; } public string Accept(TFlong type) { - return "0"; + return "BigInt(0)"; } public string Accept(TFloat type) @@ -69,7 +69,7 @@ namespace Luban.Job.Common.TypeVisitors public string Accept(TBytes type) { - return "null"; + return "new Uint8Array()"; } public string Accept(TText type) @@ -84,7 +84,7 @@ namespace Luban.Job.Common.TypeVisitors public string Accept(TArray type) { - return "[]"; + return TypescriptBinUnderingDeserializeVisitorBase.GetNewArray(type.ElementType); } public string Accept(TList type)