--品阶初态 function HeroInfo:IsInitialStateColor() if (self.m_iColor <= 1) then for iPos = 1, 4 do if (self["m_iUpgradeColor"..iPos]>0) then return false end end return true end return false end翻译成TS
时间: 2024-01-21 20:02:32 浏览: 146
在TypeScript中,可以这样写:
```
function isInitialStateColor(): boolean {
if (this.m_iColor <= 1) {
for (let iPos = 1; iPos <= 4; iPos++) {
if (this[`m_iUpgradeColor${iPos}`] > 0) {
return false;
}
}
return true;
}
return false;
}
```
需要注意的是,因为该函数中引用了类中的属性,所以需要使用`this`关键字来表示当前实例。同时,Lua中使用下划线作为属性名称的分隔符,而在TypeScript中不支持这样的写法,需要使用反引号和`${}`语法来表示动态属性名。
相关问题
--等级初态 function HeroInfo:IsInitialStateLevel() if (self.m_iLevel <= 1 and 0 == self.m_iExp) then return true end return false end --技能初态 function HeroInfo:IsInitialStateSkill() for iPos = 1, 4 do if (self["m_iCardSkill"..iPos.."Level"] > 1) then return false end end return true end --判断是否主角 function HeroInfo:isLeader() local mainData = card_xml_data(self.m_iHeroCardID) if (mainData.is_leading_role == 1) then return true else return false end end --获取资质 function HeroInfo:getQuality() local mainData = card_xml_data(self.m_iHeroCardID) return mainData.quality end翻译成TS
在TypeScript中,可以这样写:
```
function isInitialStateLevel(): boolean {
if (this.m_iLevel <= 1 && 0 === this.m_iExp) {
return true;
}
return false;
}
function isInitialStateSkill(): boolean {
for (let iPos = 1; iPos <= 4; iPos++) {
if (this[`m_iCardSkill${iPos}Level`] > 1) {
return false;
}
}
return true;
}
function isLeader(): boolean {
const mainData = card_xml_data(this.m_iHeroCardID);
if (mainData.is_leading_role === 1) {
return true;
} else {
return false;
}
}
function getQuality(): number {
const mainData = card_xml_data(this.m_iHeroCardID);
return mainData.quality;
}
```
需要注意的是,在Lua中可以将函数名和冒号直接连在一起表示该函数的参数中会自动传入一个`self`参数,而在TypeScript中需要使用`.`来调用方法,并且需要手动传入`this`作为该方法的上下文。另外,在TypeScript中需要明确指定函数的返回类型。
--装备初态 function HeroInfo:IsInitialStateEquip() for iPos = 1, 6 do if (self["m_iEquipmentLevel"..iPos] > 1 or self["m_iEquipmentColor"..iPos] > 1 or self["m_iEquipmentStar"..iPos] > 1) then return false end for iGemIndex = 1, 2 do if (self["m_iEquipGem"..iPos..iGemIndex] > 0) then return false end end end return true end翻译成TS
在TypeScript中,可以这样写:
```
function isInitialStateEquip(): boolean {
for (let iPos = 1; iPos <= 6; iPos++) {
if (this[`m_iEquipmentLevel${iPos}`] > 1 || this[`m_iEquipmentColor${iPos}`] > 1 || this[`m_iEquipmentStar${iPos}`] > 1) {
return false;
}
for (let iGemIndex = 1; iGemIndex <= 2; iGemIndex++) {
if (this[`m_iEquipGem${iPos}${iGemIndex}`] > 0) {
return false;
}
}
}
return true;
}
```
同样需要使用反引号和`${}`语法来表示动态属性名。在Lua中,使用`..`符号来连接字符串,而在TypeScript中使用加号(+)即可。
阅读全文