troika
troika copied to clipboard
Change types for createDerivedMaterial to be optional
I ran into type issues when I was working with createDerivedmaterial and I found a relatively simple solution for them. I'm not very accustomed to using JSDoc, so let me know if I'm horribly wrong here but it looks good for me. Here's a quick rundown:
In a fresh Typescript (sveltekit) project I get the classic "Could not find a declaration file for module 'troika-three-utils'", despite it being type with JSDocs. I found that adding "maxNodeModuleJsDepth": 1
in tsconfig fixes the issue. (Could be worth adding to docs, I didn't do that yet)
With that out of the way, I am now getting type checking and autocomplete but all of the defined types for createDerivedMaterial
options are required. I found that adding =
after the specified type makes it optional.
https://jsdoc.app/tags-param#optional-parameters-and-default-values
/**
* @param {Object} options.defines - <<< THIS IS REQUIRED
* @param {Object=} options.extensions - <<< THIS IS OPTIONAL
*/
As a result, after adding "maxNodeModuleJsDepth": 1
to tsconfig and applying my proposed changes I get correct types