TypeScript/tests/cases/conformance/jsdoc
Nathan Shively-Sanders 25fb5419c0
Support the JSDoc @enum tag (#26021)
* 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
2018-07-28 07:53:08 -07:00
..
callbackCrossModule.ts Add callback tag, with type parameters (#23947) 2018-05-17 09:28:11 -07:00
callbackTag1.ts Add callback tag, with type parameters (#23947) 2018-05-17 09:28:11 -07:00
callbackTag2.ts Add callback tag, with type parameters (#23947) 2018-05-17 09:28:11 -07:00
callbackTag3.ts Add callback tag, with type parameters (#23947) 2018-05-17 09:28:11 -07:00
callbackTagNamespace.ts Disallow nested object param syntax in callback tag (#24392) 2018-05-24 15:11:33 -07:00
checkJsdocParamOnVariableDeclaredFunctionExpression.ts More tests for getParameterSymbolFromJSDoc 2017-10-19 16:22:05 -07:00
checkJsdocParamTag1.ts Rename test files to be more consistent and move them into jsdoc folder 2017-05-26 11:20:57 -07:00
checkJsdocReturnTag1.ts Rename test files to be more consistent and move them into jsdoc folder 2017-05-26 11:20:57 -07:00
checkJsdocReturnTag2.ts Rename test files to be more consistent and move them into jsdoc folder 2017-05-26 11:20:57 -07:00
checkJsdocTypedefInParamTag1.ts Merge branch 'master' into master-fix16092 2017-05-30 08:25:53 -07:00
checkJsdocTypeTag1.ts Test JSDoc parsing using TS parser 2017-07-13 11:33:12 -07:00
checkJsdocTypeTag2.ts Improve contextual types and return type checking 2017-06-08 16:44:42 -07:00
checkJsdocTypeTag3.ts Test:jsdoc nullable syntax legal in type arguments 2017-08-23 15:00:40 -07:00
checkJsdocTypeTag4.ts Js/check type tags (#24967) 2018-06-14 13:11:52 -07:00
checkJsdocTypeTag5.ts Get return type from @type tag (#25580) 2018-07-12 10:49:41 -07:00
checkJsdocTypeTag6.ts Stricter test that JSDoc @type tag matches function signature (#25615) 2018-07-12 14:02:02 -07:00
checkJsdocTypeTagOnObjectProperty1.ts Add tests and update baselines 2017-06-13 15:24:05 -07:00
checkJsdocTypeTagOnObjectProperty2.ts Add tests and update baselines 2017-06-13 15:24:05 -07:00
enumTag.ts Support the JSDoc @enum tag (#26021) 2018-07-28 07:53:08 -07:00
extendsTag1.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_errorInExtendsExpression.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_nameMismatch.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_noExtends.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_notAClass.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_qualifiedName.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugments_withTypeParameter.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocAugmentsMissingType.ts In JS, always check the extends tag of a class before its heritage clause (#25111) 2018-06-20 16:28:30 -07:00
jsdocDisallowedInTypescript.ts Parse JSDoc ...T and T= only at top-level JSDoc (#22661) 2018-03-16 16:08:42 -07:00
jsdocFunctionType.ts Improve test of jsdoc literal type parsing 2017-07-17 08:29:40 -07:00
jsdocImportType.ts module.exports = Entity is an alias, just like export = Entity (#23570) 2018-04-23 15:24:31 -07:00
jsdocImportType2.ts module.exports = Entity is an alias, just like export = Entity (#23570) 2018-04-23 15:24:31 -07:00
jsdocIndexSignature.ts Add a better test for jsdoc index signatures. 2017-10-18 13:06:15 -07:00
jsdocLiteral.ts Support other (new) literal types in jsdoc 2016-08-04 13:01:17 -07:00
jsdocNeverUndefinedNull.ts JSDoc supports null, undefined and never types 2016-08-17 15:49:57 -07:00
jsdocParamTag2.ts JSDoc:positional matching of destructured params (#23307) 2018-04-10 12:48:35 -07:00
jsdocParamTagTypeLiteral.ts Update baselines 2017-07-26 10:59:08 -07:00
jsdocParseBackquotedParamName.ts Two JSdoc parsing fixes (#22705) 2018-03-20 09:23:08 -07:00
jsdocParseDotDotDotInJSDocFunction.ts Improve behaviour of ... inside JSDoc functions (#22809) 2018-03-22 16:17:16 -07:00
jsdocParseErrorsInTypescript.ts Update baselines 2017-07-14 09:34:35 -07:00
jsdocParseHigherOrderFunction.ts Fix parsing of parenthesized JSDoc parameters (#25799) 2018-07-19 12:50:36 -07:00
jsdocParseParenthesizedJSDocParameter.ts Fix parsing of parenthesized JSDoc parameters (#25799) 2018-07-19 12:50:36 -07:00
jsdocParseStarEquals.ts Two JSdoc parsing fixes (#22705) 2018-03-20 09:23:08 -07:00
jsdocPostfixEqualsAddsOptionality.ts JSDoc ?Type adds optionality to parameters (#22646) 2018-03-16 13:28:24 -07:00
jsdocPrefixPostfixParsing.ts Parse JSDoc ...T and T= only at top-level JSDoc (#22661) 2018-03-16 16:08:42 -07:00
jsdocPrototypePropertyAccessWithType.ts Don't crash on property access with type (#25170) 2018-06-25 11:25:52 -07:00
jsdocReturnTag1.ts Rename test files to be more consistent and move them into jsdoc folder 2017-05-26 11:20:57 -07:00
jsdocTemplateClass.ts Template tag allows specification of constraints (#24600) 2018-06-04 11:42:46 -07:00
jsdocTemplateConstructorFunction.ts Template tag allows specification of constraints (#24600) 2018-06-04 11:42:46 -07:00
jsdocTemplateConstructorFunction2.ts Template tag allows specification of constraints (#24600) 2018-06-04 11:42:46 -07:00
jsdocTemplateTag.ts Prototype-property assignment:fix name resolution crash (#23680) 2018-04-25 13:59:40 -07:00
jsdocTemplateTag2.ts Add callback tag, with type parameters (#23947) 2018-05-17 09:28:11 -07:00
jsdocTemplateTag3.ts Template tag allows specification of constraints (#24600) 2018-06-04 11:42:46 -07:00
jsdocTwoLineTypedef.ts Test: parsing of two-line @typedef jsdoc 2017-09-07 16:22:16 -07:00
jsdocTypeDefAtStartOfFile.ts Test @typedef in @typedef-only JS files 2017-06-13 10:37:04 -07:00
jsdocTypeFromChainedAssignment.ts Improve binding and jsdoc of chained special js assignments (#23038) 2018-04-02 09:47:01 -07:00
jsdocTypeFromChainedAssignment2.ts No error for require, module.exports or exports in Javascript (#23743) 2018-04-30 15:47:59 -07:00
jsdocTypeFromChainedAssignment3.ts Fix factorial jsdoc search:chained assignments (#23115) 2018-04-04 08:57:13 -07:00
jsdocTypeReferenceUseBeforeDef.ts Fix bogus use before def in jsdoc (#25532) 2018-07-10 08:33:19 -07:00
jsdocTypeTag.ts Fix type when annotated with a JSDoc function type (#22692) 2018-03-19 16:00:45 -07:00
jsdocTypeTagCast.ts Use jsdoc casts (#17251) 2017-07-17 23:39:20 -07:00
jsdocTypeTagParameterType.ts Fix type when annotated with a JSDoc function type (#22692) 2018-03-19 16:00:45 -07:00
jsdocTypeTagRequiredParameters.ts Fix type when annotated with a JSDoc function type (#22692) 2018-03-19 16:00:45 -07:00
noDuplicateJsdoc1.ts No dupe jsdoc for assignment inside an initializer (#24973) 2018-06-14 15:32:10 -07:00
paramTagBracketsAddOptionalUndefined.ts Brackets and postfix= in @param add undefined (#22514) 2018-03-13 15:56:38 -07:00
paramTagOnCallExpression.ts No error on unmatchable @param tags (#22510) 2018-03-14 10:17:54 -07:00
paramTagOnFunctionUsingArguments.ts No error on unmatchable @param tags (#22510) 2018-03-14 10:17:54 -07:00
paramTagTypeResolution.ts Fix jsdoc type resolution [merge to master] (#24204) 2018-05-17 10:46:10 -07:00
returnTagTypeGuard.ts check return tag in getTypePredicateOfSignature (#25130) 2018-06-21 11:30:37 -07:00
syntaxErrors.ts Test:ts-ignore works on jsdoc syntax errors 2017-11-17 10:40:16 -08:00
thisTag1.ts Support @this tags (#24927) 2018-06-13 10:11:12 -07:00
typedefCrossModule.ts Always export typedefs (#23723) 2018-04-30 14:55:26 -07:00
typedefCrossModule2.ts Always export typedefs (#23723) 2018-04-30 14:55:26 -07:00
typedefCrossModule3.ts Always export typedefs (#23723) 2018-04-30 14:55:26 -07:00
typedefCrossModule4.ts Always export typedefs (#23723) 2018-04-30 14:55:26 -07:00
typedefCrossModule5.ts Adds related spans and error grouping for duplicate identifier errors (#25328) 2018-07-02 10:47:52 -07:00
typedefInnerNamepaths.ts Fix crash when binding jsdoc-style inner namepaths (#25106) 2018-06-21 10:01:39 -07:00
typedefMultipleTypeParameters.ts Js/check type tags (#24967) 2018-06-14 13:11:52 -07:00
typedefTagNested.ts Parse nested prop and param tags the same way (#25139) 2018-06-21 16:12:55 -07:00
typedefTagTypeResolution.ts Fix jsdoc type resolution [merge to master] (#24204) 2018-05-17 10:46:10 -07:00