Angular 2+ 源代码中的 ɵ(类 Theta)符号

ɵ (Theta-like) symbol in Angular 2+ source code

深入研究 Angular 4.3.* 源代码后,我经常碰到 ɵ 符号。例如,在 async pipe source 中我们看到 ɵisPromise(_)ɵisObservable(_) 函数的用法。 所以现在我想知道为什么 Angular 团队决定使用它?这是什么意思?

似乎 Angular 开发者用 ɵ 标记 methods/modules 以强调它们是某种永远不应导入的内部实体。但是我没有找到任何权威的证据。

经过更深入的研究,我发现了另一个有趣的事实: 基本上 ɵ 是几个拉丁字母表中的一个字母(根据维基,它被包含在 1922 年至 1933 年间使用的阿塞拜疆字母表中)但它类似于希腊字母 θ (Theta)。经过一番谷歌搜索后,我设法找到了 angular 速度计算的数学公式(毕业后成功忘记),其中 Theta 字母表示角度。 所以也许这是一种幽默?

So now I wonder why Angular team decided to use it? And what does it mean?

是的,它将方法标记为 internal/private。这是从 Angular 核心团队成员那里得到此信息的 the article that was written by Uri Shaked 的话:

The first thing you many notice is a lot of obscure method names, starting with the letter ɵ (Greek Theta) followed by 3 other English letters (e.g. ɵvid). The letter ɵ is used by the Angular team to indicate that some method is private to the framework and must not be called directly by the user, as the API for these method is not guaranteed to stay stable between Angular versions (in fact, I would say it’s almost guaranteed to break).