Revision 8e13c351acb8087f5a101d70bd7f9f9aebbdc1bc authored by JoostK on 21 September 2021, 21:39:11 UTC, committed by Jessica Janiuk on 26 October 2021, 18:22:33 UTC
The `ErrorCode` enum in the `error_code.ts` file is governed by public
api guards but the other top-level exports from that file are exempt
from public api documentation and are therefore marked as `@internal`.
However, TypeScript is configured with the `stripInternal` compiler
option such that declarations with `@internal` markers are not emitted
into the `.d.ts` files, but this means that the reexports in the barrel
file end up referring to missing declarations.

The `stripInternal` option is considered internal and its documentation
states to use at your own risk (as per https://github.com/microsoft/TypeScript/issues/45307).
Having the option enabled is desirable for us as it works well for
hiding class fields that are marked `@internal`, which is an effective
way to hide members from the .d.ts file. As a workaround for the issue
with top-level symbols, the declarations with `@internal` markers are
moved to dedicated files for which no public api guard is setup,
therefore allowing their `@internal` markers to be dropped.

Fixes #43097

PR Close #43527
1 parent 59e56e7
History
File Mode Size
integrationtest
linker
ngcc
private
src
test
BUILD.bazel -rw-r--r-- 4.9 KB
esbuild.config.js -rw-r--r-- 895 bytes
import_meta_url.d.ts -rw-r--r-- 611 bytes
index.ts -rw-r--r-- 1.4 KB
package.json -rw-r--r-- 2.6 KB
tsconfig-build.json -rw-r--r-- 734 bytes
tsconfig.json -rw-r--r-- 204 bytes

back to top