无法在 TypeScript 和 Systemjs 中加载带有扩展 js 的模块

Unable to load module with extention js in TypeScript and Systemjs

Systemjs 的获取请求未将扩展名 .js 添加到 url.

这些是我的 TypeScript 类

customer.ts

import {Address} from "./Address";

export class Customer {
    private _customerName: string = "";
    public CustomerAddress: Address = new Address();
    public set CustomerName(value: string) {
        if (value.length == 0) {
            throw "Customer Name is required"; 
        }
        this._customerName = value;
    }
    public get CustomerName() {
        return this._customerName;
    }
    Validate(): boolean {
        return this._customerName != '';
    }
}

address.ts

export class Address {
    public Street1: string = "";
}

使用以下 Systemjs 初始化代码

System.config({
      defaultExtension: 'js',
});
System.import("Customer.js").then(function (exports) {
      var cust = new exports.Customer();
});

Customer.js 加载成功,但 Address.js 未加载。

Address.js 的 GET 请求不包含 .js 扩展 在控制台中产生以下请求

GET http://localhost:65401/Address 404 (Not Found).

我已尝试将 customer.ts 中的以下代码更新为以下

import {Address} from "./Address.js";

但是语法错误,在VS2013中显示错误

我如何强制 Systemjs 添加扩展名 ".js" 到 GET 请求。

谢谢

defaultExtension 关键字不是顶级配置选项。它需要在 packages 指令下,参见:https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#packages

这就是为什么它被忽略并且 SystemJS 不附加扩展名的原因。您可以定义一个 "global" 包,这可能是确保扩展始终附加到每个导入路径的最简单方法:

SystemJS.config({
  packages: {
    '.': {
      defaultExtension: 'js'
    }
  }
});