I would like to create a valid type for an array of number where any element can be null except the first one.
My best try so far cannot handle array of any size:
type NulNum = number | null
type MyArray =
| [number, NulNum]
| [number, NulNum, NulNum]
| [number, NulNum, NulNum, NulNum]
| [number, NulNum, NulNum, NulNum, NulNum]
// ...
// valid cases, should compile properly
let a: MyArray = [1, null]
a = [1, 1]
a = [1, 1, null]
a = [1, 1, null, null]
// invalid cases, should trigger a compilation error
a = [null, 1]
a = [null, null]