type ResultCode = 0 | -1 | -2 | 10003 interface ResultData { message: string data: Record } export class Result { static codes = { Success: 0 as const, Fail: -1 as const, NotMore: -2 as const, PaySuccessful: 10003 as const } static resultsMap = new Map([ [Result.codes.Success, { message: '成功', data: {} }], [Result.codes.Fail, { message: '网络加载失败', data: {} }], [Result.codes.NotMore, { message: '没有更多', data: {} }], [Result.codes.PaySuccessful, { message: '支付成功', data: {} }] ]) code: ResultCode message: string data: Record constructor(code: ResultCode, data?: Record, message?: string) { const result = Result.resultsMap.get(code) if (result) { this.code = code this.message = message || result.message this.data = data || result.data } else { this.code = code this.message = message || '' this.data = data || {} } } // 成功 static get Success(): Result { return new Result(Result.codes.Success) } // 失败(默认错误) static get Fail(): Result { return new Result(Result.codes.Fail) } // 没有更多 static get NotMore(): Result { return new Result(Result.codes.NotMore) } // 支付成功 static get PaySuccessful(): Result { return new Result(Result.codes.PaySuccessful) } }