Add --ts-undefined-for-optionals command line option (#8861)

* Add --ts-undefined-for-optionals command line option

# Details

- Fixes #7656
- Added a new `--ts-undefined-for-optionals` command line option for `flatc`.
- If enabled, generated TypeScript code uses `undefined` for optional fields rather than `null`.

* Also add TS generated test files

* Run `sh scripts/clang-format-git.sh`

* also add tests/ts/lalala-options.ts to the repo

* move new tests to tests/ts/optional_values dir

* add tests/ts/optional_values/optional_values_generated.cjs to the repo

* reuse existing optional_scalars.fbs and add new test

* add comma

* sh scripts/clang-format-git.sh

* remove comma

* sh scripts/clang-format-git.sh

* trying things

* sh scripts/clang-format-git.sh

* done

* address feedback

* sh scripts/clang-format-git.sh

* run `sh scripts/clang-format-git.sh`

* remove uneeded `eslint-disable @typescript-eslint/no-namespace` line

---------

Co-authored-by: José Luis Millán <jmillan@aliax.net>
This commit is contained in:
Iñaki Baz Castillo
2026-02-04 13:37:41 +01:00
committed by GitHub
parent 95ff1f1d80
commit 3211f857d1
13 changed files with 1307 additions and 56 deletions

View File

@@ -99,6 +99,20 @@ flatc(
schema="../non_zero_enum.fbs",
)
flatc(
options=[
"--ts",
"--gen-object-api",
"--ts-undefined-for-optionals",
],
schema="../optional_scalars.fbs",
prefix="ts-undefined-for-optionals",
)
esbuild(
"ts-undefined-for-optionals/optional_scalars.ts",
"ts-undefined-for-optionals/optional_scalars_generated.cjs",
)
flatc(
options=[
"--ts",
@@ -201,6 +215,7 @@ check_call(NODE_CMD + ["JavaScriptUnionVectorTest"])
check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"])
check_call(NODE_CMD + ["JavaScriptComplexArraysTest"])
check_call(NODE_CMD + ["JavaScriptUnionUnderlyingTypeTest"])
check_call(NODE_CMD + ["JavaScriptUndefinedForOptionals"])
print("Running old v1 TypeScript Tests...")
check_call(NODE_CMD + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"])