typescript - (Screeps) 找不到打字稿功能
问题描述
源代码可以在这里找到https://github.com/zevrant/screeps
我有一个由多个类实现的接口,当我去调用实现的接口时,我得到以下错误,我不知道为什么。我是一名 java 开发人员,我唯一的 typescript 经验是使用 Angular,所以我对 typscript 的了解是有限的。
TypeError: spawn.memory.tasks[0].execute 不是 _.forEach.spawn (../src/main.ts:70:30) 的函数
编辑1
记录对象
{"priority":10,"class":"SpawnCreep","outputs":{},"requirements":{},"sourceLocation":{"id":"2bdee70715ebc4e","room":{"name":"W3N7","energyAvailable":14,"energyCapacityAvailable":300,"visual":{"roomName":"W3N7"}},"pos":{"x":27,"y":16,"roomName":"W3N7"},"name":"Spawn1","energy":14,"energyCapacity":300,"spawning":{"name":"0u9tvotgf5cgw4ifhoewivg","needTime":15,"remainingTime":1},"store":{"energy":14},"owner":{"username":"Zevrant"},"my":true,"hits":5000,"hitsMax":5000,"structureType":"spawn"},"storageLocation":{"id":"2bdee70715ebc4e","room":{"name":"W3N7","energyAvailable":14,"energyCapacityAvailable":300,"visual":{"roomName":"W3N7"}},"pos":{"x":27,"y":16,"roomName":"W3N7"},"name":"Spawn1","energy":14,"energyCapacity":300,"spawning":{"name":"0u9tvotgf5cgw4ifhoewivg","needTime":15,"remainingTime":1},"store":{"energy":14},"owner":{"username":"Zevrant"},"my":true,"hits":5000,"hitsMax":5000,"structureType":"spawn"},"creep":{"id":"2bdee70715ebc4e","room":{"name":"W3N7","energyAvailable":14,"energyCapacityAvailable":300,"visual":{"roomName":"W3N7"}},"pos":{"x":27,"y":16,"roomName":"W3N7"},"name":"Spawn1","energy":14,"energyCapacity":300,"spawning":{"name":"0u9tvotgf5cgw4ifhoewivg","needTime":15,"remainingTime":1},"store":{"energy":14},"owner":{"username":"Zevrant"},"my":true,"hits":5000,"hitsMax":5000,"structureType":"spawn"}}
解决方案
如果您将类实例存储在内存中,它会被转换为 JSON 表示,即失去所有功能。
您将需要创建一个空类并设置值并调用该函数。
const spawnCreep = new SpawnCreep()
分配spawn.memory.tasks[0]
给spawnCreep
并打电话spawnCreep.execute()
推荐阅读
- javascript - 当只有一个类可供选择时,为什么 getElementsByClassName 需要 [0] 才能工作?
- glsl - 处理中点/笔划的景深着色器
- javascript - 为什么我的空对象文字记录为假?
- opencart - opencart 管理员没有图像拇指
- android - GoogleMapSnapshot NullPointerException
- firebase - 访问firebase中的相邻数据
- excel - 在常规的非 Office 应用程序中使用 Interop 的正确方法是什么?
- linux - 在本机库调用中找不到产生“CXXABI_1.3.9”的 AWS lambda
- html - Chrome 和 Safari HTML5 视频渲染。挂在第一帧。
- javascript - Javascript - 等待数组完成填充