25fb5419c0
* Support the JSDoc @enum tag `@enum` is used on a variable declaration with an object literal initializer. It does a number of things: 1. The object literal has a closed set of properties, unlike other object literals in Javascript. 2. The variable's name is resolvable as a type, but it just has the declared type of the enum tag. 3. Each property's type must be assignable to the enum tag's declared type, which can be any type. For example, ```js /** @enum {string} */ const Target = { START: "START", END: "END", MISTAKE: 0, // error 'number' is not assignable to 'string' -- see (3) } Target.THIS_IS_AN_ERROR; // See (1) /** @type {Target} See (2) */ var target = Target.START; ``` * Fix lint, add new test case, update API baselines |
||
---|---|---|
.. | ||
baselines/reference | ||
cases | ||
lib | ||
projects | ||
webhost | ||
perfsys.ts | ||
perftsc.ts | ||
perftsc.tsconfig.json | ||
test.bat | ||
webTestResults.html | ||
webTestServer.ts | ||
webTestServer.tsconfig.json |