Movatterモバイル変換


[0]ホーム

URL:


Superstruct
search
Ctrlk
GitHubDocs
Superstruct
gitbookPowered by GitBook
block-quoteOn this pagechevron-down

Core

assert

assert<T>(value: unknown, struct: Struct<T>, message?: string) => asserts value is T

assert(value,User,'The user is invalid!')

Assert thatvalue is valid according to astruct. If the value is invalid aStructError will be thrown (the optionalmessage parameter allows you to override error's message).

🤖 When using TypeScriptassert acts as anassertion functionarrow-up-right, so you can ensure that after calling it the type of thevalue matches the shape of the struct.

create

create<T>(value: unknown, struct: Struct<T>, message?: string) => T

constuser=create(value,User,'Unable to create a user!')

Create avalue using the coercion logic that is built-in to the struct, returning the newly coerced value. If the value is invalid aStructError will be thrown (the optionalmessage parameter allows you to override error's message).

🤖 If you want coercion logic like defaulted values, youmust call this helper before running validation.

is

is<T>(value: unknown, struct: Struct<T>) => value is T

if (is(value,User)){  // ...}

Test thatvalue is valid, returning a boolean representing whether it is valid or not.

🤖 When using TypeScriptis acts as a type guard, so you can use it in anif statement to ensure that inside the statement thevalue matches the shape of the struct.

mask

mask<T>(value: unknown, struct: Struct<T>, message?: string) => T

Mask avalue, returning a new value containing only properties defined by astruct. Conceptually this is similar tocreate, except that extra properties are omitted from the newly created value instead of throwing aStructError. If an error is thrown anyway, the optionalmessage parameter allows you to override its message.

Note that whenmask is used withtype — given thattype signals to the core that an object might have arbitrary additional properties — unknown properties will be retained in the returned value.

🤖 Just likecreate,mask includes coercion logic and works recursively.

validate

validate<T>(value: unknown, struct: Struct<T>, options: Object) => [StructError, T]

Validatevalue, returning a result tuple. If the value is invalid the first element will be aStructError. Otherwise, the first element will beundefined and the second element will be a value that is guaranteed to match the struct.

You can pass{ coerce: true } as the third argument to enable coercion of the input value. As well as pass{ message: 'Your custom error message' } to override the message of theStructError.

Last updated


[8]ページ先頭

©2009-2026 Movatter.jp