doc: improve type stripping documentation · nodejs/node@7353266

@@ -55,14 +55,16 @@ added: v22.6.0

55555656

> Stability: 1.1 - Active development

575758-

The flag [`--no-experimental-strip-types`][] prevents Node.js from running TypeScript

59-

files. By default Node.js will execute only files that contain no

60-

TypeScript features that require transformation, such as enums.

61-

Node.js will replace inline type annotations with whitespace,

58+

By default Node.js will execute TypeScript files that contains only

59+

erasable TypeScript syntax.

60+

Node.js will replace TypeScript syntax with whitespace,

6261

and no type checking is performed.

63-

To enable the transformation of such features

64-

use the flag [`--experimental-transform-types`][].

65-

TypeScript features that depend on settings within `tsconfig.json`,

62+

To enable the transformation of non erasable TypeScript syntax, which requires JavaScript code generation,

63+

such as `enum` declarations, parameter properties use the flag [`--experimental-transform-types`][].

64+

To disable this feature, use the flag [`--no-experimental-strip-types`][].

65+66+

Node.js ignores `tsconfig.json` files and therefore

67+

features that depend on settings within `tsconfig.json`,

6668

such as paths or converting newer JavaScript syntax to older standards, are

6769

intentionally unsupported. To get full TypeScript support, see [Full TypeScript support][].

6870

@@ -71,7 +73,7 @@ By intentionally not supporting syntaxes that require JavaScript code

7173

generation, and by replacing inline types with whitespace, Node.js can run

7274

TypeScript code without the need for source maps.

737574-

Type stripping works with most versions of TypeScript

76+

Type stripping is compatible with most versions of TypeScript

7577

but we recommend version 5.7 or newer with the following `tsconfig.json` settings:

76787779

```json

@@ -139,7 +141,7 @@ This will result in [`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`][] error:

139141140142

```ts

141143

// This namespace is exporting a value

142-

namespace A {

144+

namespace A {

143145

export let x = 1

144146

}

145147

```

@@ -204,9 +206,9 @@ with `#`.

204206

[CommonJS]: modules.md

205207

[ES Modules]: esm.md

206208

[Full TypeScript support]: #full-typescript-support

207-

[`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`]: errors.md#err_unsupported_typescript_syntax

208209

[`--experimental-transform-types`]: cli.md#--experimental-transform-types

209210

[`--no-experimental-strip-types`]: cli.md#--no-experimental-strip-types

211+

[`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`]: errors.md#err_unsupported_typescript_syntax

210212

[`tsconfig` "paths"]: https://www.typescriptlang.org/tsconfig/#paths

211213

[`tsx`]: https://tsx.is/

212214

[`verbatimModuleSyntax`]: https://www.typescriptlang.org/tsconfig/#verbatimModuleSyntax