我不明白如何使用带有typescript 2的es6模块

时间:2016-10-23 13:09:38

标签: typescript

请帮助我,我不明白如何在TS中使用es6模块。 例如:

我尝试将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 && 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 个答案:

答案 0 :(得分:0)

现在您从typescript输出es6代码。现在这没用,除非你打算进一步转向ES5代码。

通常使用模块的方法是将代码转换为ES5并将tsc转换为ES5模块定义(例如systemjs模块),并在运行时使用模块加载器(如SystemJS)加载它们。