const ts = require('typescript')
const { probe } = require('ts-probe')
const { writeFileSync } = require('fs')
writeFileSync('/tmp/nyan.ts', [
'interface User { id: number; name: string; }',
'interface StoredUser extends User { storedAt: Date }',
'type StoredUserArray = Array<StoredUser>',
].join('\n'))
const program = ts.createProgram(['/tmp/nyan.ts'], {})
const source = program.getSourceFile('/tmp/nyan.ts')
const type = probe({
program,
source,
typeText: 'StoredUserArray[0]',
extractInterface: true,
})
type.getProperties().map(({ escapedName }) => escapedName)