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);
});