Машинопись экспорт не определено

Я'м пытаясь использовать экспорт и импорт, но это не работает, я получаю сообщение об ошибке

Вот мой HTML-код :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    @RenderBody()

    <script src="~/scripts/user.js"></script>
    <script src="~/scripts/main.js"></script>
</body>
</html>

Пользователей.ТС :

export class User {
    firstName: string;
    lastName: string;
}

главная.ТС

import { User } from "./user";

Здесь также скриншот исключение :

Решение

У вас есть несколько вариантов:

Вариант 1: Использовать загрузчик модуль, как Webpack, Browserify, и т. д.

Вариант 2: Если вы просто хотите компилировать *.ТС к *.на JS без какой-либо модуль импортирует или экспортирует, сеть компилятора параметры.модуль, чтобы "никто" в вашем tsconfig.формат JSON. Обратите внимание, что вы выиграли&#39;т быть в состоянии модули экспорта/импорта, когда вы установитекомпилятора параметры.модуль` чтобы "не то".

Комментарии (3)

попробуйте следующие изменения

HTML-код:




    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">


    @RenderBody()


    <script src="~/scripts/main.js"></script>

tsconfig.в JSON

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true,
    "outFile": "~/scripts/main.js",
    "lib": [
      "dom",
      "es2015",
      "es5",
      "es6"
    ]
  }
}

с этой конфигурации ваш выход только один файл JS что можно uglified wunderfull, содержащий все файлы ссылки на главной.ТС. я просто не'т знать, если ~/ работ или если у вас есть, чтобы задать относительный путь к файлу конфигурации, я'м не работает с Linux.

Пользователей.ТС

class User {
    firstName: string;
    lastName: string;
}

Главная.ТС:

/// 

// import { User } from "./user"; // not needed if referenced
console.log(new User());

все ссылки на заявления должны быть написаны в начале файла

Комментарии (8)

Машинопись по умолчанию использует узла модуля. Node.js / на CommonJS использует экспорт ключевое слово. Однако, на CommonJS не'т работать в браузере без загрузчик модулей или упаковщик модуль. Следовательно, вам нужно browserify или webpack, чтобы получить это работает в браузере.

Проверить эту ссылку https://www.typescriptlang.org/docs/handbook/gulp.html

Вы также можете установить модуль установка по опции компилятора раздел tsconfig.в JSON:

{ "у компилятора параметры" с: { "в цель" и: "и в ES5 и", на "модуля": "на нет"и } }

Комментарии (2)

Этот работал для меня:

мой-перечисление.ТС

const MyEnum = {
'test': 456,
'Default': 123
}

Компонент.ТС

import * as MyEnum from 'my-enum';
Комментарии (0)