Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

AnyColumn

Given a database type and a union of table names in that db, returns a union type with all possible column names.

Example:

interface Person {
  id: number
}

interface Pet {
  name: string
  species: 'cat' | 'dog'
}

interface Movie {
  stars: number
}

interface Database {
  person: Person
  pet: Pet
  movie: Movie
}

type Columns = AnyColumn<Database, 'person' | 'pet'>

// Columns == 'id' | 'name' | 'species'
type AnyColumn<DB, TB extends keyof DB> = [T in TB]: keyof DB[T][TB] & string;

§Type Parameters

§
TB extends keyof DB
[src]

§Type

§
[T in TB]: keyof DB[T][TB] & string
[src]