For the first Option, yes, you're right. It is SalesInvoiceJournalPost class and not SalesInvoiceJournalPostBase. (I copied the extends property by mistake)
SalesLine doesn't have invoice account. That's right too.
" salesLine.salesTable().InvoiceAccount "does the Job.