export interface IData {
yourName: string;
yourAge: number;
books: number[];
}
export class GameData {
private static info: IData;//
public static init() {
console.log("info = ", GameData.info);
GameData.info = JSON.parse("{}");
(undefined === GameData.info.yourName) && (GameData.info.yourName = "uid name");
(undefined === GameData.info.yourAge) && (GameData.info.yourAge = 0);
(undefined === GameData.info.books) && (GameData.info.books = (new Array(8)));
}
public static getData():IData{
if (!GameData.info){
GameData.init();
}
return GameData.info;
}
}
let data:IData = GameData.getData();
console.log("data.yourName = ",data.yourName);
console.log("data.yourAge = ",data.yourAge);
console.log("data.books.len = ",data.books.length);
tsc testSave.ts
$ node testSave.js
info = undefined
data.yourName = uid name
data.yourAge = 0
data.books.len = 8
保存的时候只能采用static方式才能成功。无法实例化一个interface,但是可以将其所强制定义结构的对象指向其它对象。JS这些东西,就是这么稀奇古怪