Advertisements
Take Math.random and Number.MAX_VALUE function.
Why is Number green and the other Blue (for my colour theme). This also applies to static methods on Number.
>Solution :
If you inspect the token scopes using Developer: Inspect Editor Tokens and Scopes
, you’ll see:
-
For
Math
: "semantic token type: variable" -
For
Number
: "semantic token type: class"
This makes sense I think. In lib.es5.d.ts:
interface NumberConstructor {
new(value?: any): Number;
...
}
...
declare var Number: NumberConstructor;
...
interface Math {
... // no constructor (`new` function)
}
declare var Math: Math;
The new
function in the MathConstructor
type declaration is providing typings for the Number
constructor, which indicates to TypeScript that Number
is a class. But not so for the Math
type.