TypeScript-DOM-lib-generator icon indicating copy to clipboard operation
TypeScript-DOM-lib-generator copied to clipboard

performance.measure() overloads instead of optional arguments

Open lgodziejewski opened this issue 4 years ago • 1 comments

Hey there

according to MDN Docs, the performance.measure() fn has 4 different argument sets (overloads) - the current typing suggests only one and marks some of the args as optional.

Perhaps it'd be better to have the 4 overloads listed explicitly? i.e. instead of:

measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;

have sth like:

measure(measureName: string): PerformanceMeasure
measure(measureName: string, MeasureOptions: PerformanceMeasureOptions): PerformanceMeasure
measure(measureName: string, startMark: string): PerformanceMeasure
measure(measureName: string, startMark?: string, endMark: string): PerformanceMeasure

WDYT? This would enable better autocomplete suggestions in code editors (notice the 1/3 on the 2nd pic):

when pic
before image
after image

If it's OK for you - what would be the best way to submit these changes?

lgodziejewski avatar Jan 04 '22 13:01 lgodziejewski

Your fourth overload is invalid, it has a required argument after an optional argument.

I did the conversion in #1280, basically the steps are:

  1. Fork and clone this repo
  2. Find out what kind the type you want to modify
    1. Find out which spec the type belongs to. Usually MDN page has a "Specifications" section.
    2. Scroll to the IDL part, check whether it's an interface, a dictionary or something else like a callback.
  3. Open inputfiles/overridingTypes.jsonc, search for existed entries for your type, if nothing found, add a new entry in the corresponding section (interface, dictionary, etc.)
  4. Check how other overrides work, write your own one (may be difficult, there is no docs)
  5. Run npm install, npm build, npm baseline-accept, npm run test
  6. Check the output in baselines is what you want, and there is no test errors.

yume-chan avatar Mar 02 '22 03:03 yume-chan