https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates … const bodyIsNew = (req: Request): req is Request & { body: New } => http://req.body.new https://www.typescriptlang.org/play/index.html#code/JYOwLgpgTgZghgYwgAgEqogRwK4QM5jIDeAUMucgEYD2AJgJ4BcyBUoA5sgD7IjYC2laABoyFStjBg8zGtQA2EOCBIBfEiQTUQBKnXoBJPADkIAd2QBeZAAooWZuiy4CASmb3MyYHjQYc+IQAZMR6DMx8gtDIqlYAfGLkYPQADhDUMMieAHQ0DFaW1gDkkUJQRRpaOoSejv4uhNZEYUzIAMzCVJLSzGBQuDEaOXn0GsCZNiNGpmZ2WK6uxIlZWLn6akA …
-
-
-
butts. not quite it because that new type info needs to exist outside an if-block. Once the function runs, all code that follows should see new type https://www.typescriptlang.org/play/index.html#code/JYOwLgpgTgZghgYwgAgEJwM4oN4ChkHIBGA9gCYCeAXMhmFKAOYDc+hMJJNpJANhHBCsAvrlxgKABxQAVAPIAROcgC8yQRVYTpyAHIQA7quQgArgFsi0VrhimQCMMBIh1vSFFTkKAHhkA+AAoANzheGhkAShoAMXtHZ1c8QmRtFF0ADRljOXNgMB90LAAaZAByUkoy-2QAMmRsYm8I5GFWFKgIMFMoVzsHJxdkQM6ARxoiiFLOjAjFOVKQCAAPMDmlaPUMLCgwDGQx5GB9zOzklMIRiFGtvSzIgDpKimNQ3naLgiXVwMiPglEolwAHpgcgALSQsT8MAHa4TTAoNTnAgcLipKCmKZsAjPGhlAAWEF4vBIZVwQNBcJuxzQiNwYQ8XkoPn0BiCAEYAEwAZkiV1Gi1MJKFJL+YiphwwBJIwrIxBQ5nIwBgwAgZFwY1YQA …
- Još 3 druga odgovora
Novi razgovor -
-
-
Assert type might do the trick https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions … but I believe it can only narrow the type, not completely change it...
-
Right, assert/is is a guard for narrowing, but looking to change the type entirely. And thanks – I have been writing type-safe Node for a long time now (with polka), just looking to sprinkle in some TS inference magic for those who aren't there yet.
Kraj razgovora
Novi razgovor -
-
-
What about overriding it? interface NewRequest extends Omit<Request, 'body'> { body: New }
-
Right, but in a middleware loop, for example, how would you make that same `req` object now be seen as the new modified type?
Kraj razgovora
Novi razgovor -
-
-
I guess my suggestion would be to return `req` from your middleware and then you can make the return type what you wish? Although I can’t remember if mutating the body of a request is good foo anyway... :P
-
Yeah, would be easy if I could do that but unfortunately limited to Express-style middleware. Want to modify `body` (or even add new key) within a `req` but since middleware stack instead of return, it's proving difficult. Here's general idea: https://www.typescriptlang.org/play/index.html#code/JYOwLgpgTgZghgYwgAgEJwM4oN4ChkHIBGA9gCYCeAXMhmFKAOYDc+hMJJNpJANhHBCsAvrlxgKABxQAVAPIAROcgC8yQRVYTpyAHIQA7quQgArgFsi0VrhimQCMMBIh1vSFFTkKAHhkA+AAoANzheGhkAShoAMXtHZ1c8QmRtFF0ADRljOXNgMB90LAAaZAByUkoy-2QAMmRsYm8I5GFWFKgIMFMoVzsHJxdkQM6ARxoiiFLOjAjFOVKQCAAPMDmlaPUMLCgwDGQx5GB9zOzklMIRiFGtvSzIgDpKimNQ3naLgiXVwMiPglEolwAHpgcgALSQsT8MAHa4TTAoNTnAgcLipKCmKZsAjPGhlAAWEF4vBIZVwQNBcJuxzQiNwYQ8XkoPn0BiCAEYAEwAZkiV1Gi1MJKFJL+YiphwwBJIwrIxBQ5nIwBgwAgZFwY1YQA …
- Još 1 odgovor
Novi razgovor -
-
-
Not sure it's possible - this is where I got to https://bit.ly/35oZ9Pc
Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.