fs.readdirSync(__dirname) показывает расширение файла .js вместо .ts

У меня есть следующий код:

      console.log(fs.readdirSync(__dirname));

Что выводит следующее:

      [ 'index.js', 'objective.js', 'quest.js', 'user_objective.js' ]

Однако моя настройка каталога файлов выглядит следующим образом:

Почему он думает, что расширение .ts — это .js?

tsconfig.json

      {
  "compilerOptions": {
   
    "target": "es6",
  
    "module": "commonjs" /* Specify what module code is generated. */,
    "rootDir": "./src" /* Specify the root folder within your source files. */,
    "outDir": "./dist" /* Specify an output folder for all emitted files. */,
    "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
    // "preserveSymlinks": true,                         /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
    "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,

    /* Type Checking */
    "strict": true /* Enable all strict type-checking options. */,
   
    "skipLibCheck": true /* Skip type checking all .d.ts files. */
  },
  "exclude": ["node_modules"]
}

1 ответ

Node.js не поддерживает TypeScript.

Ваш TypeScript скомпилирован в JavaScript и сохранен в.jsфайлы ("outDir": "./dist" /* Specify an output folder for all emitted files. */,).

Node.js запускает полученный JavaScript.

The __dirnameдля файлов JS содержит файлы JS.

Другие вопросы по тегам