次のような単純な 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); }
}
}
}
静的プロパティCurrent
は、次のように HTML ファイルから呼び出されます。
alert(HouseOfSynergy.Library.Version.Current.toString());
Google Chrome は次のエラーを生成します。
静的プロパティを関数に変換しようとしましたが、同じエラーが発生し続けます。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 = {}));