Skip to content

Better Type Design? #16

@Brooooooklyn

Description

@Brooooooklyn
interface TaskSchema {
  _id: TaskId
  note: string
  created: string
  _sourceId?: TaskId
}

interface Table<T> extends lf.schema.Table {
  eq(value: T[K] | lf.schema.Column): Predicate
}

type RealTable<T> = Table<T> & {
  [K in keyof T]?: lf.schema.Column
}

let table : Table<TaskSchema>

const predicate1 = table._id.eq('1111') // pass
const predicate2 = table._id.eq(11111)  // error
const predicate3 = table._id.eq(table._souceId)  // pass

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions