SelectArray type
如果 TFields
永遠不是,則為不具類型的字串數位,否則為取用型別中其他地方所要使用的縮小 Fields[]
型別。
type SelectArray<TFields> = [string] extends [TFields]
? readonly TFields[]
: () => (T extends TFields ? true : false) extends () => T extends never
? true
: false
? readonly string[]
: readonly TFields[]