请帮助我,我不明白如何在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和浏览器中收到意外的令牌导入。请说,我错了吗?
答案 0 :(得分:0)
现在您从typescript输出es6代码。现在这没用,除非你打算进一步转向ES5代码。
通常使用模块的方法是将代码转换为ES5并将tsc转换为ES5模块定义(例如systemjs模块),并在运行时使用模块加载器(如SystemJS)加载它们。