我在React代码库中看到以下内容:
export type TypeOfWork = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
它在做什么?
来源:https://github.com/facebook/react/blob/master/src/shared/ReactTypeOfWork.js
答案 0 :(得分:1)
这是流程或打字稿语法。
它定义了一个自定义类型,它只能是0到10之间的数字。
export type TypeOfWork = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
let x: TypeOfWork = 0;
x = 12; // <-- compiler would throw an error here
在这种情况下,枚举可能更好(仅适用于打字稿)
https://www.typescriptlang.org/docs/handbook/enums.html
export const enum TypeOfWork {
IndeterminateComponent = 0, // Before we know whether it is functional or class
FunctionalComponent = 1,
ClassComponent = 2,
HostRoot = 3, // Root of a host tree. Could be nested inside another node.
HostPortal = 4, // A subtree. Could be an entry point to a different renderer.
HostComponent = 5,
HostText = 6,
CoroutineComponent = 7,
CoroutineHandlerPhase = 8,
YieldComponent = 9,
Fragment = 10
};
正如您在compiled view
中看到的那样,哪种方式会更好