TypeScript随手
Typescript多构造函数
不支持多个构造函数,可以使用可选参数
constructor(data?: IRefTeamSysMsgInfo) { if (data !== undefined) { this.id = data.id this.sendTime = data.sendTime this.msgType = data.msgType this.uid = data.uid this.state = data.status } }
c#中Action在ts中实现,在ts中的变量都是undefine
c# 中
public Action OnUpdate; void Update() { OnUpdate?.invoke(); }
ts中
export class Test{ beInit:boolean = false Init() { this.kcpHelper.OnUpdate=this.Update.bind(this) } Update() { KcpLog.I(`KcpManager.Update0 ${this.beInit} `) } }
如果不加bind(this) 则beInit输出undefine
函数参数中的?
export function autodata(dataKeyName?: string, type: JsProxyDataType = JsProxyDataType.Auto) {。中dataKeyName?中的?是什么意思
在 TypeScript 中,?
表示参数是可选的,可以在函数调用时省略该参数
enum取全部选项value或key
enum ServerCommand { // Request UserLoginRequest = 1001, // Response UserLoginResponse = 2001, // Sync TeamMsgSync = 3001, // Sync Ack SyncAck = 4001, // HeartBeat HeartBeat = 5001, // HeartBeat 应答 HeartBeatAck = 5002, } const enumKeys = Object.keys(ServerCommand) as (keyof typeof ServerCommand)[]; enumKeys.forEach((key) => { console.log(key); }); const enumValues = Object.values(ServerCommand) as (keyof typeof ServerCommand)[]; enumKeys.forEach((value) => { console.log(value); });