我有一个简单的 TypeScript 文件,如下所示:
module HouseOfSynergy
{
export module Library
{
export class Version
{
private _Major: number = 0;
private _Minor: number = 0;
private _Build: number = 0;
private _Revision: number = 0;
public get Major(): number { return (this._Major); }
public get Minor(): number { return (this._Minor); }
public get Build(): number { return (this._Build); }
public get Revision(): number { return (this._Revision); }
constructor(major: number, minor: number, build: number, revision: number)
{
this._Major = major;
this._Minor = minor;
this._Build = build;
this._Revision = revision;
}
public toString(): string
{
return (this._Major.toString() + "." + this._Minor.toString() + "." + this._Build.toString() + "." + this._Revision.toString());
}
private static _Current: HouseOfSynergy.Library.Version = new HouseOfSynergy.Library.Version(1, 0, 0, 0);
public static get Current(): HouseOfSynergy.Library.Version { return (HouseOfSynergy.Library.Version._Current); }
}
}
}
从 HTML 文件调用静态属性Current
,如下所示:
alert(HouseOfSynergy.Library.Version.Current.toString());
谷歌浏览器产生以下错误:
我尝试将静态属性转换为函数,但不断收到相同的错误。Version
即使声明类的实例也会new Version(1, 0, 0, 0)
产生相同的错误。任何指针将不胜感激。
这是生成的 JavaScript:
var HouseOfSynergy;
(function (HouseOfSynergy) {
var Library;
(function (Library) {
var Version = (function () {
function Version(major, minor, build, revision) {
this._Major = 0;
this._Minor = 0;
this._Build = 0;
this._Revision = 0;
this._Major = major;
this._Minor = minor;
this._Build = build;
this._Revision = revision;
}
Object.defineProperty(Version.prototype, "Major", {
get: function () { return (this._Major); },
enumerable: true,
configurable: true
});
Object.defineProperty(Version.prototype, "Minor", {
get: function () { return (this._Minor); },
enumerable: true,
configurable: true
});
Object.defineProperty(Version.prototype, "Build", {
get: function () { return (this._Build); },
enumerable: true,
configurable: true
});
Object.defineProperty(Version.prototype, "Revision", {
get: function () { return (this._Revision); },
enumerable: true,
configurable: true
});
Version.prototype.toString = function () {
return (this._Major.toString() + "." + this._Minor.toString() + "." + this._Build.toString() + "." + this._Revision.toString());
};
Object.defineProperty(Version, "Current", {
get: function () { return (HouseOfSynergy.Library.Version._Current); },
enumerable: true,
configurable: true
});
Version._Current = new HouseOfSynergy.Library.Version(1, 0, 0, 0);
return Version;
}());
Library.Version = Version;
})(Library = HouseOfSynergy.Library || (HouseOfSynergy.Library = {}));
})(HouseOfSynergy || (HouseOfSynergy = {}));