Я не понимаю, как использовать модули es6 с typescript 2

#typescript

#typescript

Вопрос:

Пожалуйста, помогите мне, я не понимаю, как использовать модули es6 в TS. Например:

Я пытаюсь импортировать ext.class для class1.ts.

 class1.ts
import ExtClass from "./ext.class";
class Class1 {
    constructor(){
        console.log(new ExtClass().title)
        console.log("Work")
    }
}
new Class1();
  

Его экспортирующий класс

 ext.class.ts
class ExtClass {
    public title: string = "ExtClass work";
}
export default ExtClass

package.json
{
  "name": "ts_def",
  "version": "0.0.0",
  "license": "MIT",
  "private": true,
  "scripts": {
    "start": "tsc amp;amp; concurrently "tsc -w" "lite-server" ",
    "lite": "lite-server"
  },
  "dependencies": {
    "core-js": "^2.4.1",
    "ts-helpers": "^1.1.1"
  },
  "devDependencies": {
    "@types/jasmine": "^2.2.30",
    "@types/node": "^6.0.42",
    "codelyzer": "~0.0.26",
    "ts-node": "1.2.1",
    "tslint": "3.13.0",
    "typescript": "2.0.2",
    "concurrently": "^3.0.0",
    "lite-server": "^2.2.2"
  }
}
tsconfig.json
{
  "compilerOptions": {
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es6", "dom"],
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es6",
    "typeRoots": [
      "../node_modules/@types"
    ]
  }
}
  

В результате я получаю неожиданный импорт токена в CLI и браузере. Пожалуйста, скажите мне, что не так?

Ответ №1:

Теперь вы выводите код es6 из typescript. Прямо сейчас это бесполезно, если вы не планируете перенести это в код ES5.

Обычно модули используются путем переноса кода в ES5 и того, чтобы tsc перенес модули ES6 в определение модуля ES5, например, модули systemjs, и во время выполнения загружал их с помощью загрузчика модулей, такого как SystemJS.