// 对Access进行封装,属性的类型可以不用接口,可以使用类. class AccessJSON { private _loginType; private _verify; // constructor(loginType, verify) { // this._loginType = loginType; // this._verify = verify; // } constructor(build: AccessBuilder) { this._loginType = build.loginType; this._verify = build.verify; } toJSON() { // return (JSON.stringify(this._loginType) + JSON.stringify(this._verify)); // return JSON.parse( // (JSON.stringify(this._loginType) + JSON.stringify(this._verify)) // .replace(/}{/, ',') // ); return Object.assign({}, this._loginType, this._verify); } } export class AccessBuilder { // Builder 方案 private _loginType; private _verify; constructor() {} setAccess(loginType, verify): AccessBuilder { this._loginType = loginType; this._verify = verify; return this; } get loginType() { return this._loginType; } get verify() { return this._verify; } // buildJSON(): AccessJSON { // return new AccessJSON(this); // } toJSON() { return new AccessJSON(this).toJSON(); } }