Невозможно импортировать модули TypeScript без указания расширения файла

Я очень новичок в TypeScript, и я ожидаю, что смогу импортировать свои файлы TS без необходимости указывать, что они являются файлами TS.

я должен сделать

import {sealed} from "./decorators/decorators.ts";

вместо того, что я хочу думать, это правильный путь, который

import {sealed} from "./decorators/decorators";

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

мой tsconfig.json выглядит так

{
"compileOnSave": true,
"compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "jsx": "react",
    "allowJs": true,
    "target": "es6",
    "removeComments": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
},
"exclude": [
    "node_modules",
    "typings/browser",
    "typings/browser.d.ts"
]

}


person Steve Silvestri    schedule 08.04.2016    source источник
comment
Я вижу, как вы компилируете свои модули в модули commonjs. Что вы используете для их загрузки? Вебпак? Или это приложение узла?   -  person thitemple    schedule 09.04.2016
comment
Я использую вебпак   -  person Steve Silvestri    schedule 09.04.2016


Ответы (2)


Если вы используете webpack, попробуйте добавить это в свой файл webpack.config.js:

resolve: {
  extensions: ['', '.js', '.jsx', '.ts', '.tsx']
},
person thitemple    schedule 09.04.2016
comment
Д'О, это определенно так. Спасибо! - person Steve Silvestri; 09.04.2016

Ответ от thtemple у меня сработал, но мне пришлось удалить '' из массива, потому что он остановил запуск веб-пакета.

resolve: {
  extensions: ['.js', '.jsx', '.ts', '.tsx']
},
person Martin Stuessy    schedule 02.07.2018