Topic de RoadToSardine :

[HELP] Besoin d'un dev JS/TypeScript pour une petite question

Le 13 septembre 2022 Ă  23:10:26 :
tu type Post de ta const newPost objet custom il aime , met any a la place de Post pour voir si il continue de gueuler

Par contre c'est un truc de fou, il arrive a choper le type d'un objet selon la cle.
Genre la si j'ai bien defini le truc et que je fais schema.create("post", newPost), il sait que newPost doit etre de type Post, mais si je fais schema.create("rooms", newRoom), il sait que newRoom doit etre de type Room.
Les autres langages objets et fonctionnels gĂšrent pas les generics jusque la :(

Le 13 septembre 2022 Ă  23:15:56 :
fais ca ?

export interface Post {
id?: string; => ici ?
title: string;
author: string;
latest: DateTime;
messages: Array<Message> | [];
}

Ouai c'est ce que j'ai fais du coup, merci encore :merci:

Le 13 septembre 2022 Ă  23:18:00 :

Le 13 septembre 2022 Ă  23:10:26 :
tu type Post de ta const newPost objet custom il aime , met any a la place de Post pour voir si il continue de gueuler

Par contre c'est un truc de fou, il arrive a choper le type d'un objet selon la cle.
Genre la si j'ai bien defini le truc et que je fais schema.create("post", newPost), il sait que newPost doit etre de type Post, mais si je fais schema.create("rooms", newRoom), il sait que newRoom doit etre de type Room.
Les autres langages objets et fonctionnels gĂšrent pas les generics jusque la :(

Je connais pas la lib mais c'est surement dû au fait que Post est déclaré en générique dans la lib et que tu l'importe le type Post que tu réaffecte alors que Room tu l'a inventé avec ton interfcae? regarde tes imports khey?

Le 13 septembre 2022 Ă  23:23:22 :

Le 13 septembre 2022 Ă  23:18:00 :

Le 13 septembre 2022 Ă  23:10:26 :
tu type Post de ta const newPost objet custom il aime , met any a la place de Post pour voir si il continue de gueuler

Par contre c'est un truc de fou, il arrive a choper le type d'un objet selon la cle.
Genre la si j'ai bien defini le truc et que je fais schema.create("post", newPost), il sait que newPost doit etre de type Post, mais si je fais schema.create("rooms", newRoom), il sait que newRoom doit etre de type Room.
Les autres langages objets et fonctionnels gĂšrent pas les generics jusque la :(

Je connais pas la lib mais c'est surement dû au fait que Post est déclaré en générique dans la lib et que tu l'importe le type Post que tu réaffecte alors que Room tu l'a inventé avec ton interfcae? regarde tes imports khey?

Non en fait je parlais surtout du modifier keyof et des "Mapped types"... C'est un truc de fou: https://www.typescriptlang.org/docs/handbook/2/keyof-types.html
https://www.typescriptlang.org/docs/handbook/2/mapped-types.html

Le 13 septembre 2022 Ă  23:23:22 :

Le 13 septembre 2022 Ă  23:18:00 :

Le 13 septembre 2022 Ă  23:10:26 :
tu type Post de ta const newPost objet custom il aime , met any a la place de Post pour voir si il continue de gueuler

Par contre c'est un truc de fou, il arrive a choper le type d'un objet selon la cle.
Genre la si j'ai bien defini le truc et que je fais schema.create("post", newPost), il sait que newPost doit etre de type Post, mais si je fais schema.create("rooms", newRoom), il sait que newRoom doit etre de type Room.
Les autres langages objets et fonctionnels gĂšrent pas les generics jusque la :(

Je connais pas la lib mais c'est surement dû au fait que Post est déclaré en générique dans la lib et que tu l'importe le type Post que tu réaffecte alors que Room tu l'a inventé avec ton interfcae? regarde tes imports khey?

ah ok j'ai mal lu laisse tomber.
Euh TS check tes typages quand tu affectes, quand tu compares...
Apres il y a un fichier de rules pour dĂ©activer ce qui te saoule mais ca n'a plus grand intĂ©rĂȘt. Le but premier de TS, au dela du choix de compilation JS c'est d'Ă©viter les cast foireux

Le 13 septembre 2022 Ă  23:26:23 :

Le 13 septembre 2022 Ă  23:23:22 :

Le 13 septembre 2022 Ă  23:18:00 :

Le 13 septembre 2022 Ă  23:10:26 :
tu type Post de ta const newPost objet custom il aime , met any a la place de Post pour voir si il continue de gueuler

Par contre c'est un truc de fou, il arrive a choper le type d'un objet selon la cle.
Genre la si j'ai bien defini le truc et que je fais schema.create("post", newPost), il sait que newPost doit etre de type Post, mais si je fais schema.create("rooms", newRoom), il sait que newRoom doit etre de type Room.
Les autres langages objets et fonctionnels gĂšrent pas les generics jusque la :(

Je connais pas la lib mais c'est surement dû au fait que Post est déclaré en générique dans la lib et que tu l'importe le type Post que tu réaffecte alors que Room tu l'a inventé avec ton interfcae? regarde tes imports khey?

ah ok j'ai mal lu laisse tomber.
Euh TS check tes typages quand tu affectes, quand tu compares...
Apres il y a un fichier de rules pour dĂ©activer ce qui te saoule mais ca n'a plus grand intĂ©rĂȘt. Le but premier de TS, au dela du choix de compilation JS c'est d'Ă©viter les cast foireux

Yes c'est pour ca que je l'ai mis.
J'ai test Elm avant mais ça pue du cul je trouve, mĂȘme si j'adore les langages fonctionnels habituellement.
Le HTML qui devient une fonction :rire:

Un truc utile quand tu construis un gros objet genre et que tu veux pas te prendre la tĂȘte avec les types never/null/undefined sur les props d'un objet sur lesquelles tu as des variables initialiser sur ces 3 valeurs.
style private toto:! MyInterface | null = null;
C'est de le typer "as unknow as myInterface" mais sois sur et certain que tu as tout lol
Je connaissais pas Mirage ça Ă  l'air sympa, c'est un peu de la mĂȘme veine que https://mswjs.io/

Le 13 septembre 2022 Ă  23:33:38 :
Un truc utile quand tu construis un gros objet genre et que tu veux pas te prendre la tĂȘte avec les types never/null/undefined sur les props d'un objet sur lesquelles tu as des variables initialiser sur ces 3 valeurs.
style private toto:! MyInterface | null = null;
C'est de le typer "as unknow as myInterface" mais sois sur et certain que tu as tout lol

J'ai pas tout compris. Je note quand meme le as unknown as myInterface, j'imagine que je le reverrais d'ici peu :ok:

Le 13 septembre 2022 Ă  23:41:14 :
Je connaissais pas Mirage ça Ă  l'air sympa, c'est un peu de la mĂȘme veine que https://mswjs.io/

Effectivement, tout se passe dans un service worker.
Avant j'utilisais des application mock standalone genre MockServer mais c'est beaucoup trop lourd et pas intégré simplement dans les projets.

Données du topic

Auteur
RoadToSardine
Date de création
13 septembre 2022 Ă  22:39:13
Nb. messages archivés
30
Nb. messages JVC
30
En ligne sur JvArchive 297