hoge.ts
const hoge: (string|number)[] = [ 1, "hige" ];
ただし
hage.ts
// OK
const hage: (number|[])[] = [ 1, [] ];
// NG
const moge: (number|[])[] = [ 1, [ [], 3 ] ];
// OK
const koge: any = [ 1, [ [], 3 ] ];
ネストしたい場合は大人しくany使った方がいいかも
追記:
コメントで再帰的な型の定義方法教えていただきました。
ありがとうございます。