Skip to content

Conversation

@lambdalisue
Copy link
Member

Now users can infer T from Predicate<T> so that they don't need to define type definition twice

Before

const isArticle = is.ObjectOf({
  title: is.String,
  body: is.String,
  refs: is.ArrayOf(is.OneOf([
    is.String,
    is.ObjectOf({
      name: is.String,
      url: is.String,
    }),
  ])),
});

type Article = {
  title: string;
  body: string;
  refs: (string | {
    name: string;
    url: string;
  })[];
};

After

const isArticle = is.ObjectOf({
  title: is.String,
  body: is.String,
  refs: is.ArrayOf(is.OneOf([
    is.String,
    is.ObjectOf({
      name: is.String,
      url: is.String,
    }),
  ])),
});

type Article = PredicateType<typeof isArticle>;

@lambdalisue lambdalisue merged commit 905643c into main Sep 23, 2023
@lambdalisue lambdalisue deleted the predicate-type branch September 23, 2023 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants