类型检查怎么可能?

问题描述 投票:0回答:0

在研究ReactFragment、ReactNode、JSX.Element等react的组件时,遇到了一些看不懂的东西

react源码里,有我看不懂的代码

type ReactFragment = Iterable<ReactNode>;
type ReactNode = ReactElement | string | number | ReactFragment | ReactPortal | boolean | null | undefined;

在此代码中,ReactNode 引用的 ReactFragment 类型,反之亦然。 我认为这是关于循环引用的错误,但它运行得很好。

所以,我写了两段代码,一段有效,一段无效。

正常(运行良好。)

type A = Iterable<B>;
type B = A | number;

错误(语法错误)

type A = B | string;
type B = A | string;

这两个代码有什么区别?除了 A 类型的 Iterable,我不知道。

我试着理解 tsc.

scanner 标记每个标记,如空格、标识符等。 解析器使用扫描仪生成的令牌生成 AST,然后检查器检查 AST 树以生成 .js 代码

如果我有错误的tsc信息,请告诉我。谢谢。

typescript tsc
© www.soinside.com 2019 - 2024. All rights reserved.