ts c скомпилировать машинописный текст, который импортирует с использованием расширения файла - PullRequest
1 голос
/ 04 августа 2020

Я пишу свой машинописный код независимым от экосистемы способом. Я решил включить расширения файлов в импорт, соответствующие Интернету и Deno.

import xyz from "./foo.ts";

Как мне заставить компилятор машинописного текста (tsc) скомпилировать эти файлы без следующей ошибки:

error TS2691: An import path cannot end with a '.ts' extension.

Я до сих пор пробовал следующее в своем tsconfig.json безрезультатно:

{
    "compilerOptions": {
        "paths": {
            "*.js": ["*"],
            "*.ts": ["*"]
        },
        ...
    },
    ...
}

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

В настоящее время я использую API компилятора машинописного текста (в настоящее время в бета-версии) для решения этой проблемы ... Я опубликую более подробную информацию в ближайшее время.

0 голосов
/ 06 августа 2020

Вы можете скомпилировать без ошибок, указав tsc игнорировать все такие import операторы.

// @ts-ignore
import xyz from "./foo.ts";

Чтобы понять, почему вы не можете настроить выход из этого, мы должны покопаться в основные причины, по которым TypeScript не хочет, чтобы вы использовали расширение .ts внутри оператора import.

tsc не перезаписывает имена файлов модулей, поэтому, если вы дадите ему

import xyz from "./foo.ts"

он не создает файл foo.js, а полученный скомпилированный ECMAScript (любой версии, которую вы укажете) по-прежнему говорит об импорте ./module.ts. Поскольку целью компиляции в ECMAScript является избавление от файлов TypeScript, ссылка на файл .ts в выводе явно не годится.

То, что вы хотите, было поднято в вопросах TypeScript GitHub (см. # 27481 , # 11901 ). Вы можете присоединиться к обсуждению на GitHub.

...