#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.