メインコンテンツにスキップ
eLearner.app
モジュール 7 · レッスン 1 / 2コース内の 13/14~12 min
モジュールのレッスン (1/2)

tsconfig.jsonによる設定

The tsconfig.json file specifies the root directory of a TypeScript project and the compiler options required to build the project.

Whenever you run tsc in a project directory, the compiler searches for this file to guide its compilation behavior.


Structure of a tsconfig.json File

A typical configuration file looks like this:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

The main properties are:

  • compilerOptions: Settings for the compiler.
  • include: Specifies the files or folders to compile.
  • exclude: Specifies the files or folders to ignore during compilation.

Key Compiler Options

Here are some of the most important settings to know:

  1. target: Specifies the version of JavaScript output by the compiler (e.g., es5, es6/es2015, es2020, esnext).
  2. module: Specifies the module system used in the compiled code (e.g., commonjs, esnext, node16).
  3. strict: Enables a broad suite of rigorous type-checking behaviors. It is highly recommended to set this to true for maximum type safety. It enables options like:
    • noImplicitAny: Raises an error on expressions and declarations with an implied any type when no type annotation is provided.
    • strictNullChecks: Prevents assigning null or undefined to types that do not explicitly include them in their union.

Try it yourself

Exercise 1: Handling strictNullChecks

運動#ts.m7.l1.e1
試行回数: 0読み込み中…

Under the strictNullChecks: true option in tsconfig.json, we cannot assign null or undefined to primitive types. Declare a function named parseAge that accepts an input of type string | null and returns a number if the input is not null and is a valid integer, otherwise it returns 0. Explicitly handle the null case to pass strict compilation.

エディターを読み込み中…
ヒントを表示

Check if input is null at the start of the function and return 0 immediately before processing the string.

3 回の試行後に解決策が利用可能になります

Exercise 2: Strict Typing without Implicit Any

運動#ts.m7.l1.e2
試行回数: 0読み込み中…

Under noImplicitAny: true, any parameter whose type cannot be inferred must be explicitly typed. Create a function named processItems that accepts an array items (array of numbers) and a callback function that takes a single number as an argument and returns nothing. Make sure not to use any and type everything explicitly.

エディターを読み込み中…
ヒントを表示

Declare the function with signature function processItems(items: number[], callback: (item: number) => void): void.

3 回の試行後に解決策が利用可能になります