@rbuckton <!-- Please try to reproduce the issue with `typescript@next`. It may have already been fixed. --> **TypeScript Version:** typescript@3.7.0-dev.20191004 <!-- Search terms you tried before logging this (so others can find this issue more easily) --> **Search Terms:** **Code** ```ts declare const o: { m(): [] | undefined }; o.m()?.length; ``` **Expected behavior:** ```ts o.m()?.length; ``` **Actual behavior:** ```ts o.m() ?.length; ``` **Playground Link:** <!-- A link to a TypeScript Playground "Share" link which demonstrates this behavior --> **Related Issues:** <!-- Did you find other bugs that looked similar? -->