Skip to content

Inspect

Returns the inputted type but with unions, intersections and negations turned into tables so they can be inspected / debugged better.

Params

NameTypeDescription
inputanyThe type to be inspected.

Example

luau
type Result = Inspect<"hello" | ("world" & string)>

--[[
    type Result = {
        1: "hello",
        2: {
            1: "world",
            2: string,
            kind: "intersection"
        },
        kind: "union"
    }
]]

Expect

Throws a type error if the first type does not equal the second.

Params

NameTypeDescription
expectanyThe type to be compared.
toBeanyThe type you want to compare expect to.

Example

luau
type test = Expect<
    { foo: "bar" } & { hello: "world" },
    (string, boolean) -> ...any
>

--[[
    TypeError: 'Expect' type function errored at runtime: [string "Expect"]:2295: 
    Expected the function type below:
    > (string, boolean) -> (...any)

    But Got this intersection type instead:
    > {
    >     foo: "bar"
    > } & {
    >     hello: "world"
    > }
]]

Negate

Negates a type.

TEMPORARY

This type function will be removed once luau gets negation syntax (see the negation-types RFC).

Params

NameTypeDescription
inputanyThe type to stringify.

Example

luau
type Result = Negate<string>

-- type Result = ~string