** This repo has been moved to typed-screeps **
The forked repository for strong Screep's TypeScript type definitions. https://screeps.com/
Using typings, add this to your typings.json:
typings install github:resir014/typed-screeps/dist/screeps.d.ts#master -SG
Differences from Screeps-Typescript-Declarations:
-
Memory
is typed by default. The added typings are:CreepMemory
FlagMemory
SpawnMemory
RoomMemory
If you like the idea of typed memory, but aren't ready to just fully in, just make sure you define an interface for the above four types. Then you can extend them at a later time. Example:
interface CreepMemory { [name: string]: any }; interface FlagMemory { [name: string]: any }; interface SpawnMemory { [name: string]: any }; interface RoomMemory { [name: string]: any };
-
Any place in code that uses a constant (ex
STRUCTURE_EXTENSION
orFIND_MY_SPAWNS
is now constrained to use literal types. Here is the list of the new types:BodyPartConstant StructureConstant FindConstant LookConstant DirectionConstant ResourceConstant MineralConstant (this is a subset of ResourceConstant) ColorConstant ScreepsReturnCode
To update your code, you just need to change any
string
types to match one of the above. For example, if your code had:function getBody(): string[] { return [ WORK, MOVE, CARRY ]; }
Change it to:
function getBody(): BodyPartConstant[] { // this line changed return [ WORK, MOVE, CARRY ]; }
-
Some original functions were incorrectly typed to not include
null
as a possible return. You may need to update your code to reflect this update (ex.findClosestByPath
orfindClosestByRange
)
ConstructionSite
can be optionally constrained by a structure type (ex.ConstructionSite<STRUCTURE_CONTAINER>
). TypeScript will enforce that thetype
property of theConstructionSite
appropriately matchesResource
can optionally be constrained (ex.Resource<RESOURCE_ENERGY>
)Mineral
can optionally be constrained byMineralConstant
(ex.Mineral<RESOURCE_GHODIUM>
)Structure
can optionally be constrained (exStructure<STRUCTURE_SPAWN | STRUCTURE_EXTENSION>
)- Screeps classes derived from
Structure
(exStructureContainer
) have theirtype
property correspondingly constrained LookAt
results are now constrained to the type looked for- Results from
Find
-type functions are now constrained to have aRoomPosition
Note: When using this API, you can't access creeps in manner suggested in Screeps' tutorial:
Game.creeps.Worker1 // This is not allowed by TypeScript compiler
Instead, you have to use
Game.creeps['Worker1']
This library will stay up to date only with the help of you! If active players don't update it, it'll get lost.
To update the declarations, edit the files in ./src folder.
To compile the declarations, run:
npm run compile