Should I include code I want typed but not published in tsconfig.json ?

The following is an AI chat conversation regarding the topic stated in the title.
Depending on the quality of the conversation, modifications may have been made. Modifications may or may not be stated in this page.


Should I include code in my tsconfig.json file in “includes” if I want it to be typed, but it is not code for the actual delivered product? For example, if it is build code that I want to be typed.

Whether to include build code in the “includes” list of your tsconfig.json file depends on a few factors:

1. Type Checking and Build Process:

  • If you want type checking and language features for build code during development, include it.
  • If the code is executed as part of the build process (e.g., custom webpack plugins), include it for accurate type checking during build.

2. Performance and Build Size:

  • If type checking build code is unnecessary or impacts performance negatively, exclude it.
  • If including a large amount of build code unnecessarily increases the built JavaScript output, exclude it.

3. Organization and Clarity:

  • If inclusion makes project structure clearer and tooling easier to set up, include it.
  • If exclusion better organizes code for separation of concerns, exclude it.

Best Practices:

  • Separate build code into a dedicated directory for organization and clarity.
  • Use a separate tsconfig.json file specifically for build code, ensuring appropriate configurations without affecting main code.
  • Consider “files” property for explicit file lists instead of “include” for fine-grained control and clarity.

Example tsconfig.json for build code:

JSON
{
  "compilerOptions": {
    // Options tailored for build code
  },
  "include": ["build/**/*.ts"]
}

Recommendations:

  • If build code benefits from type checking or is part of the build process, include it.
  • If performance, build size, or code separation are primary concerns, exclude it.
  • Prioritize clarity, organization, and tooling convenience for effective development.

I want the build code to be included in type checking in VSCode. Would any parent tsconfig.json be detected? Must it be called tsconfig.json?

Here’s how parent tsconfig.json files and type checking in VS Code work:

1. Inheritance:

  • VS Code automatically detects and uses parent tsconfig.json files within the same workspace folder.
  • It merges configurations from parent files, allowing for shared settings and overrides in child files.

2. File Searching:

  • VS Code searches for tsconfig.json files in the following order:
    1. Current workspace folder
    2. Parent workspace folders (recursively)
    3. User-specified path (using the “typescript.tsconfig.autoDetect” setting)

3. File Name:

  • Yes, the file must be named tsconfig.json. VS Code specifically looks for this file name.

Recommendations for VS Code:

  • Position tsconfig.json files strategically: Place them in relevant workspace folders for desired inheritance and configuration sharing.
  • Consider separate files for build code: Isolate build-related configurations for better organization and tailored type checking.
  • Manually specify a parent tsconfig.json: If necessary, use the “typescript.tsconfig.autoDetect” setting to direct VS Code to a specific parent file.

Additional Tips:

  • Use the “extends” property: Explicitly reference a parent tsconfig.json for clarity and maintainability, even within the same workspace folder.
  • Customize workspace settings: Adjust VS Code’s TypeScript settings for specific needs in your project (e.g., enabling or disabling automatic detection).

Example:

  • If you have a top-level tsconfig.json for shared settings and a separate tsconfig.build.json for build code within a nested ‘build’ folder, inheritance and automatic detection will typically work as expected in VS Code.

Leave a Reply

Your email address will not be published. Required fields are marked *