facebook/idx

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!