Skip to main content

Types

Consider the following code that uses a number enum:

enum MyEnum {
Value1,
}

function asMyEnum(num: number): MyEnum {}

declare const something: unknown;

const foo = something as MyEnum; // no error
const bar: MyEnum = something; // error
const baz = asMyEnum(something); // error

Here, using as does not give an error because TypeScript allows you to assert a type to a supertype or a subtype. Thus, using as to perform a type assertion is not as safe as using a variable declaration or a helper function. However, if we use a variable declaration, then the isaacscript/strict-enums rule is triggered, which requires suppressing the lint rule with a // eslint-disable-next-line. Thus, the safest and more concise way to do a type assertion is to use a helper function.

This file contains helper functions for various number enums that might require type assertions. It also contains helper functions for run-time type checks.

Functions

asCardType

asCardType(num): CardType

Helper function to safely cast an int to a CardType. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

CardType

Defined in

packages/isaacscript-common/src/functions/types.ts:49


asCollectibleType

asCollectibleType(num): CollectibleType

Helper function to safely cast an int to a CollectibleType. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

CollectibleType

Defined in

packages/isaacscript-common/src/functions/types.ts:59


asFloat

asFloat(num): float

Helper function to safely cast an enum to an int. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numnumber

Returns

float

Defined in

packages/isaacscript-common/src/functions/types.ts:69


asInt

asInt(num): int

Helper function to safely cast an enum to an int. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numnumber

Returns

int

Defined in

packages/isaacscript-common/src/functions/types.ts:79


asLevelStage

asLevelStage(num): LevelStage

Helper function to safely cast an int to a LevelStage. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

LevelStage

Defined in

packages/isaacscript-common/src/functions/types.ts:89


asNPCState

asNPCState(num): NPCState

Helper function to safely cast an int to a NPCState. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

NPCState

Defined in

packages/isaacscript-common/src/functions/types.ts:99


asNumber

asNumber(num): number

Helper function to safely cast an enum to a number. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numnumber

Returns

number

Defined in

packages/isaacscript-common/src/functions/types.ts:109


asPillColor

asPillColor(num): PillColor

Helper function to safely cast an int to a PillColor. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

PillColor

Defined in

packages/isaacscript-common/src/functions/types.ts:119


asPillEffect

asPillEffect(num): PillEffect

Helper function to safely cast an int to a PillEffect. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

PillEffect

Defined in

packages/isaacscript-common/src/functions/types.ts:129


asPlayerType

asPlayerType(num): PlayerType

Helper function to safely cast an int to a PlayerType. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

PlayerType

Defined in

packages/isaacscript-common/src/functions/types.ts:139


asRoomType

asRoomType(num): RoomType

Helper function to safely cast an int to a RoomType. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

RoomType

Defined in

packages/isaacscript-common/src/functions/types.ts:149


asString

asString(str): string

Helper function to safely cast an enum to a string. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
strstring

Returns

string

Defined in

packages/isaacscript-common/src/functions/types.ts:159


asTrinketType

asTrinketType(num): TrinketType

Helper function to safely cast an int to a TrinketType. (This is better than using the as TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )

This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.

Parameters

NameType
numint

Returns

TrinketType

Defined in

packages/isaacscript-common/src/functions/types.ts:169


isBoolean

isBoolean(variable): variable is boolean

Parameters

NameType
variableunknown

Returns

variable is boolean

Defined in

packages/isaacscript-common/src/functions/types.ts:173


isFunction

isFunction(variable): variable is Function

Parameters

NameType
variableunknown

Returns

variable is Function

Defined in

packages/isaacscript-common/src/functions/types.ts:178


isInteger

isInteger(variable): variable is int

Parameters

NameType
variableunknown

Returns

variable is int

Defined in

packages/isaacscript-common/src/functions/types.ts:182


isNumber

isNumber(variable): variable is number

Parameters

NameType
variableunknown

Returns

variable is number

Defined in

packages/isaacscript-common/src/functions/types.ts:190


isPrimitive

isPrimitive(variable): variable is string | number | boolean

Helper function to detect if a variable is a boolean, number, or string.

Parameters

NameType
variableunknown

Returns

variable is string | number | boolean

Defined in

packages/isaacscript-common/src/functions/types.ts:195


isString

isString(variable): variable is string

Parameters

NameType
variableunknown

Returns

variable is string

Defined in

packages/isaacscript-common/src/functions/types.ts:206


isTable

isTable(variable): variable is LuaMap<AnyNotNil, unknown>

Parameters

NameType
variableunknown

Returns

variable is LuaMap<AnyNotNil, unknown>

Defined in

packages/isaacscript-common/src/functions/types.ts:210


isUserdata

isUserdata(variable): variable is LuaUserdata

Parameters

NameType
variableunknown

Returns

variable is LuaUserdata

Defined in

packages/isaacscript-common/src/functions/types.ts:217


parseIntSafe

parseIntSafe(string): int | undefined

Helper function to convert a string to an integer. Returns undefined if the string is not an integer.

Under the hood, this uses the built-in tonumber and math.floor functions.

This is named parseIntSafe in order to match the helper function in isaacscript-common-ts.

Parameters

NameType
stringstring

Returns

int | undefined

Defined in

packages/isaacscript-common/src/functions/types.ts:230