我最近开始将SystemJS用于我的Angular 2应用程序。但是,它给我带来了麻烦,因为我无法用JS文件替换TS文件。
例如考虑以下导入:
int[] n = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
@Test
public void testRecursiveSolution() {
Assert.assertEquals(0, recursiveBinarySearch(1,n));
Assert.assertEquals(15, recursiveBinarySearch(16,n));
Assert.assertEquals(14, recursiveBinarySearch(15,n));
Assert.assertEquals(13, recursiveBinarySearch(14,n));
Assert.assertEquals(12, recursiveBinarySearch(13,n));
Assert.assertEquals(11, recursiveBinarySearch(12,n));
Assert.assertEquals(10, recursiveBinarySearch(11,n));
Assert.assertEquals(9, recursiveBinarySearch(10,n));
Assert.assertEquals(-1, recursiveBinarySearch(100,n));
}
private int recursiveBinarySearch(int n, int[] array) {
if(array.length==1) {
if(array[0]==n) {
return 0;
} else {
return -1;
}
} else {
int mid = (array.length-1)/2;
if(array[mid]==n) {
return mid;
} else if(array[mid]>n) {
return recursiveBinarySearch(n, Arrays.copyOfRange(array, 0, mid));
} else {
int returnIndex = recursiveBinarySearch(n, Arrays.copyOfRange(array, mid+1, array.length));
if(returnIndex>=0) {
return returnIndex+mid+1;
} else {
return returnIndex;
}
}
}
}
import {SubscriptionsComponent} from './subscriptions.ts';
import {WelcomeComponent} from './welcome.ts';
我希望SystemJS然后请求System.register(['./subscriptions.ts', './welcome.ts'], function(exports_1) {
// ...
});
,而是请求subscriptions.js
,结果是404。
我不想使用转换器 - 我只是希望SystemJS以某种方式理解我需要请求JS文件。
这是我认为有用的配置(但是,只有在包含subscriptions.ts
但不包括foo.ts
之类的内容时才有效。)
./foo.ts
有趣的是,它没有请求System.config({
"baseURL": '/',
"defaultJSExtensions": false,
"paths": {
"*.ts": "*.js"
}
});
System.import('components/main.ts');
,它实际上要求components/main.ts
。如果components/main.js
包含其他文件,它就无法工作。
答案 0 :(得分:0)
不可否认,我没有使用SystemJS,但总体而言,TypeScript模块的文档建议您不要使用文件扩展名:
import {SubscriptionsComponent} from './subscriptions';
import {WelcomeComponent} from './welcome';
以下示例适用于Visual Studio代码编辑器,因此您可能特别遇到Atom问题:
mod.ts
export class Example {
doIt() {
return 5;
}
}
app.ts
import {Example} from './mod'
var x = new Example();
答案 1 :(得分:0)
如果您不想在配置transpiler: none
中使用转发器添加。
更改"defaultJSExtensions": true
并省略导入的扩展程序。
你还看到错误吗?