Notre avis
Définit des schémas Effect vérifiés par rapport à des types de domaine, en utilisant 'satisfies' et 'assert<Equals>' pour garantir la cohérence.
Points forts
- Assure une correspondance stricte entre les types et les schémas.
- Utilise des vérifications à la compilation avec tsafe.
- Détecte les divergences entre le schéma et le type de domaine.
Limites
- Nécessite une connaissance de Effect et de tsafe.
- La vérification d'égalité peut être verbeuse.
- Ne couvre pas les validations avancées sans fonctions personnalisées.
Lors de la définition de nouveaux schémas Effect ou de la mise à jour de schémas existants pour assurer la parité avec les types d'interface.
Pour des schémas simples où la cohérence des types est évidente ou lorsque le projet n'utilise pas Effect.
Analyse de sécurité
SûrThe skill only provides instructions for defining TypeScript types and Effect schemas with compile-time parity checks. It involves no execution of code, network access, or file system operations.
Aucun point d'attention détecté
Exemples
Create an Effect schema for an interface IUser with fields name (string) and age (number). Use 'satisfies' and add an assert<Equals> check.My Effect schema for IFoo has a type mismatch with the interface. Add parity checks using tsafe and correct the schema.name: effect-schema description: Define Effect schemas that are verified against domain types. Use when authoring or updating Effect Schema definitions, or when the user mentions schema/type parity, satisfies, or tsafe Equals checks.
Effect Schema Type Parity
Instructions
- Define the domain type first (prefer
interface), then define the schema and assert parity. - Always use
satisfies Schema.Schema<YourType, any>on the schema. - Add
assert<Equals<typeof YourSchema.Type, Readonly<YourType>>>()usingtsafe. - If the
assert<Equals<...>>isn't typed correctly but thesatisfiesis, you can optionally add the_check1/_check2assignments withvoid(seeZerospinCommandSchema). - When validating unknown input against an Effect schema, prefer
validateUnknownfromzerospinif available.
Example
import type { Equals } from 'tsafe';
import { Schema } from 'effect';
import { assert } from 'tsafe';
export interface IFoo {
bar: string;
}
export const ZFoo = Schema.Struct({
bar: Schema.String,
}) satisfies Schema.Schema<IFoo, any>;
const _check1: typeof ZFoo.Type = {} as IFoo;
const _check2: IFoo = {} as typeof ZFoo.Type;
void _check1;
void _check2;
assert<Equals<typeof ZFoo.Type, Readonly<IFoo>>>();
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.