Typescript types do not work on undefined as first parameter
Closed this issue · 5 comments
The following does not work:
const myVar: { a: { b: string } } | null = null as {
a: { b: string };
} | null;
const something = idx(myVar, _ => _.a.b);
Could you provide more details about how exactly it should work? Your issue doesn't say anything 😅 It doesn't work in the transpile fase? Or at the runtime?
This should have no compile errors, but it does.
The error is [ts] Object is possibly 'null'. [2531]
.
If you are using the { strict: true }
option in your tsconfig.json
, it will always check about possible null
values, and for never
values too, so, if you want to compile your code, you can disable that, or do a check in this variable, because the idx
type definition returns a possible null
in this line :D
Checking the return here const something = idx(myVar, _ => _.a.b);
with something like -> const something = idx(myVar, _ => _.a.b) || 'Error message here';
will solve the problem.
Thanks, @Horaddrim.
Sounds like this question has been resolved.
@Horaddrim This doesn't solve the problem for me.
const myVar: { a: { b: string } } | null = null as {
a: { b: string };
} | null;
const something = idx(myVar, _ => _.a.b) || "TEST";
still fails the build.
Please let me know if I failed any etiquette by opening a new issue. I'm not sure if I was supposed to do that-- sorry if I'm being annoying!