Make optional options optional in typings and add type tests #622
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose / Goal
See #612
This changes the type definitions to set all options with defaults to optional in the typings.
It adds documentation to all types so they show up in Intellisense when using the types.
It adds a type test - defining objects as the various options types (parse, validate, build) with none of the optional properties. Simply run
npm test-types
to attempt to compile the TS file and it will emit any type errors.Example with no errors:
Example with an error - add
someNewProperty
to the type definition as non-optional:fxp.d.ts:
The type test will now fail since the
typings-test.ts
file does not include this property in the validation options and it's listed as required:This will ensure the test fails if a property is added to the type as non-optional but not added to the
typings-test.ts
file as a required property.Type
Please mention the type of PR
Note : Please ensure that you've read contribution guidelines before raising this PR. If your PR is in progress, please prepend
[WIP]
in PR title. Your PR will be reviewed when[WIP]
will be removed from the PR title.Bookmark this repository for further updates.