Skip to content

Cannot narrow Token type since v7.0.2 #2938

Open
@rokoucha

Description

Marked version: v7.0.2

Describe the bug
Since Marked v7.0.2, cannot narrow Token type.

Tokens.Generic was added to Token in #2891 but this change makes cannot narrow Token type by Token.type.

| Tokens.Generic) & { loose?: boolean, tokens?: Token[] };

To Reproduce
Steps to reproduce the behavior:

import type { Token } from 'marked'

const t: Token = {
  type: 'text',
  raw: 'test',
  text: 'test',
}
if (t.type === 'text') {
  t // const t: (Tokens.Text & {
    //   loose?: boolean | undefined;
    //   tokens?: Token[] | undefined;
    // }) | (Tokens.Generic & {
    //   loose?: boolean | undefined;
    //   tokens?: Token[] | undefined;
    // })
  t.text // (property) Tokens.Text.text: any
}

Expected behavior

import type { Token } from 'marked'

const t: Token = {
  type: 'text',
  raw: 'test',
  text: 'test',
}
if (t.type === 'text') {
  t // const t: Tokens.Text & {
    // loose?: boolean | undefined;
    // tokens?: Token[] | undefined;
    // }
  t.text // (property) Tokens.Text.text: string
}

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