在研究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信息,请告诉我。谢谢。