在Visual Studio中,我创建了一个Typescript项目,其中有几个类在默认的app.ts文件中声明。现在我想开始将这些类分成单独的.ts文件。我很难理解为这个项目类型推荐哪个模块加载系统。Typescript Visual Studio 2015 Update 3哪个模块系统用于导入单独的ts文件
我选择ES6,这样我可以使用语法ASYC /等待:
我添加了一个新的Test.ts与导出的测试类型声明文件:
:export class Test {
}
在我app.ts我创建这个类型的实例
回
window.onload = async() => {
let test = new Test();
}
的Visual Studio提供添加导入它:
import {Test} from "Test";
现在,当我运行在Chrome的解决方案,我得到以下控制台消息:
Uncaught SyntaxError: Unexpected token import
我意识到,铬不是“进口”的意识。有人可以提供一个关于如何让导入工作在VS 2015环境中的建议。我是否需要使用另一个模块系统,如果有,请如何添加支持单独加载.ts文件?
编辑:使用此语法 我见过的例子:
/// <reference path="Test.ts" />
,但它不工作编译时解析型我推测这是一个过时的做法。
而且,我看在Chrome的源选项卡上,我可以看到我所想的是我的源transpilation到(ES5):
window.onload =() => __awaiter(this, void 0, void 0, function*() {
,但我也看到了“下课”的关键字,其我没有想到,所以我不完全确定为什么某些转换正在发生或没有。即异步到__awaiter(支持),类别(不transpiled和支持),进口
编辑 我跟着project
使用webpack.config.js(不转化,不支持。):
module.exports = {
entry: './src/app.ts',
output: {
filename: './dist/bundle.js'
},
resolve: {
// Add `.ts` and `.tsx` as a resolvable extension.
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
// all files with a `.ts` or `.tsx` extension will be handled by `ts-loader`
{ test: /\.tsx?$/, loader: 'ts-loader' }
]
}
}
但我似乎有一个import语句一字不差地复制,并在ES5输出不转换成浏览器能够理解的装载机相同的问题:
import {Test} from "./Test";
SO响应太长,但TL; DR:使用外部模块和webpack。检查这[优秀的资源](https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html) –
优秀 - 我甚至没有意识到有浏览器和非浏览器基于ts的区别。 – jchristof
按照该链接中的指定设置项目,但我得到的结果相同。 – jchristof