[TS] Allows object API to set 0 for a null-default scalar. (#7864)

* Fixes bug where null default allows 0 as a value.

* Undoes one bit, adds null type allowance to addField<> default.

* Undoes IDE auto-format of imports.

* Adds generated changes after scripts/generate_code.py

* Removes unused symbol.

* Revert "Removes unused symbol."

This reverts commit 9cece17325f37a49f35ede29ebbe2f518c9d591f.

---------

Co-authored-by: Derek Bailey <derekbailey@google.com>
diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp
index 0081931..41c05e3 100644
--- a/src/idl_gen_ts.cpp
+++ b/src/idl_gen_ts.cpp
@@ -2000,11 +2000,7 @@
         if (!IsScalar(field.value.type.base_type)) {
           code += "0";
         } else if (HasNullDefault(field)) {
-          if (IsLong(field.value.type.base_type)) {
-            code += "BigInt(0)";
-          } else {
-            code += "0";
-          }
+          code += "null";
         } else {
           if (field.value.type.base_type == BASE_TYPE_BOOL) { code += "+"; }
           code += GenDefaultValue(field, imports);
diff --git a/tests/TestAll.sh b/tests/TestAll.sh
index 3a3fcd7..a7741b9 100755
--- a/tests/TestAll.sh
+++ b/tests/TestAll.sh
@@ -16,7 +16,7 @@
 
 echo "************************ TypeScript:"
 
-python3 TypeScriptTest.py
+python3 ts/TypeScriptTest.py
 
 echo "************************ C++:"
 
@@ -56,4 +56,4 @@
 
 cd FlatBuffers.Test.Swift
 sh SwiftTest.sh
-cd ..
\ No newline at end of file
+cd ..
diff --git a/tests/ts/optional-scalars/scalar-stuff.ts b/tests/ts/optional-scalars/scalar-stuff.ts
index 2260b45..e76088b 100644
--- a/tests/ts/optional-scalars/scalar-stuff.ts
+++ b/tests/ts/optional-scalars/scalar-stuff.ts
@@ -222,7 +222,7 @@
 }
 
 static addMaybeI8(builder:flatbuffers.Builder, maybeI8:number) {
-  builder.addFieldInt8(1, maybeI8, 0);
+  builder.addFieldInt8(1, maybeI8, null);
 }
 
 static addDefaultI8(builder:flatbuffers.Builder, defaultI8:number) {
@@ -234,7 +234,7 @@
 }
 
 static addMaybeU8(builder:flatbuffers.Builder, maybeU8:number) {
-  builder.addFieldInt8(4, maybeU8, 0);
+  builder.addFieldInt8(4, maybeU8, null);
 }
 
 static addDefaultU8(builder:flatbuffers.Builder, defaultU8:number) {
@@ -246,7 +246,7 @@
 }
 
 static addMaybeI16(builder:flatbuffers.Builder, maybeI16:number) {
-  builder.addFieldInt16(7, maybeI16, 0);
+  builder.addFieldInt16(7, maybeI16, null);
 }
 
 static addDefaultI16(builder:flatbuffers.Builder, defaultI16:number) {
@@ -258,7 +258,7 @@
 }
 
 static addMaybeU16(builder:flatbuffers.Builder, maybeU16:number) {
-  builder.addFieldInt16(10, maybeU16, 0);
+  builder.addFieldInt16(10, maybeU16, null);
 }
 
 static addDefaultU16(builder:flatbuffers.Builder, defaultU16:number) {
@@ -270,7 +270,7 @@
 }
 
 static addMaybeI32(builder:flatbuffers.Builder, maybeI32:number) {
-  builder.addFieldInt32(13, maybeI32, 0);
+  builder.addFieldInt32(13, maybeI32, null);
 }
 
 static addDefaultI32(builder:flatbuffers.Builder, defaultI32:number) {
@@ -282,7 +282,7 @@
 }
 
 static addMaybeU32(builder:flatbuffers.Builder, maybeU32:number) {
-  builder.addFieldInt32(16, maybeU32, 0);
+  builder.addFieldInt32(16, maybeU32, null);
 }
 
 static addDefaultU32(builder:flatbuffers.Builder, defaultU32:number) {
@@ -294,7 +294,7 @@
 }
 
 static addMaybeI64(builder:flatbuffers.Builder, maybeI64:bigint) {
-  builder.addFieldInt64(19, maybeI64, BigInt(0));
+  builder.addFieldInt64(19, maybeI64, null);
 }
 
 static addDefaultI64(builder:flatbuffers.Builder, defaultI64:bigint) {
@@ -306,7 +306,7 @@
 }
 
 static addMaybeU64(builder:flatbuffers.Builder, maybeU64:bigint) {
-  builder.addFieldInt64(22, maybeU64, BigInt(0));
+  builder.addFieldInt64(22, maybeU64, null);
 }
 
 static addDefaultU64(builder:flatbuffers.Builder, defaultU64:bigint) {
@@ -318,7 +318,7 @@
 }
 
 static addMaybeF32(builder:flatbuffers.Builder, maybeF32:number) {
-  builder.addFieldFloat32(25, maybeF32, 0);
+  builder.addFieldFloat32(25, maybeF32, null);
 }
 
 static addDefaultF32(builder:flatbuffers.Builder, defaultF32:number) {
@@ -330,7 +330,7 @@
 }
 
 static addMaybeF64(builder:flatbuffers.Builder, maybeF64:number) {
-  builder.addFieldFloat64(28, maybeF64, 0);
+  builder.addFieldFloat64(28, maybeF64, null);
 }
 
 static addDefaultF64(builder:flatbuffers.Builder, defaultF64:number) {
@@ -342,7 +342,7 @@
 }
 
 static addMaybeBool(builder:flatbuffers.Builder, maybeBool:boolean) {
-  builder.addFieldInt8(31, +maybeBool, 0);
+  builder.addFieldInt8(31, +maybeBool, null);
 }
 
 static addDefaultBool(builder:flatbuffers.Builder, defaultBool:boolean) {
@@ -354,7 +354,7 @@
 }
 
 static addMaybeEnum(builder:flatbuffers.Builder, maybeEnum:OptionalByte) {
-  builder.addFieldInt8(34, maybeEnum, 0);
+  builder.addFieldInt8(34, maybeEnum, null);
 }
 
 static addDefaultEnum(builder:flatbuffers.Builder, defaultEnum:OptionalByte) {
diff --git a/ts/builder.ts b/ts/builder.ts
index fe496ab..c379295 100644
--- a/ts/builder.ts
+++ b/ts/builder.ts
@@ -202,42 +202,42 @@
       this.writeFloat64(value);
     }
   
-    addFieldInt8(voffset: number, value: number, defaultValue: number): void {
+    addFieldInt8(voffset: number, value: number, defaultValue: number|null): void {
       if (this.force_defaults || value != defaultValue) {
         this.addInt8(value);
         this.slot(voffset);
       }
     }
   
-    addFieldInt16(voffset: number, value: number, defaultValue: number): void {
+    addFieldInt16(voffset: number, value: number, defaultValue: number|null): void {
       if (this.force_defaults || value != defaultValue) {
         this.addInt16(value);
         this.slot(voffset);
       }
     }
   
-    addFieldInt32(voffset: number, value: number, defaultValue: number): void {
+    addFieldInt32(voffset: number, value: number, defaultValue: number|null): void {
       if (this.force_defaults || value != defaultValue) {
         this.addInt32(value);
         this.slot(voffset);
       }
     }
   
-    addFieldInt64(voffset: number, value: bigint, defaultValue: bigint): void {
+    addFieldInt64(voffset: number, value: bigint, defaultValue: bigint|null): void {
       if (this.force_defaults || value !== defaultValue) {
         this.addInt64(value);
         this.slot(voffset);
       }
     }
   
-    addFieldFloat32(voffset: number, value: number, defaultValue: number): void {
+    addFieldFloat32(voffset: number, value: number, defaultValue: number|null): void {
       if (this.force_defaults || value != defaultValue) {
         this.addFloat32(value);
         this.slot(voffset);
       }
     }
   
-    addFieldFloat64(voffset: number, value: number, defaultValue: number): void {
+    addFieldFloat64(voffset: number, value: number, defaultValue: number|null): void {
       if (this.force_defaults || value != defaultValue) {
         this.addFloat64(value);
         this.slot(voffset);