Uso de WebStorm. Mecanografiado v4.6.2
Tengo una función dentro del archivo de JavaScript normal index.js . Junto a él tengo el archivo de declaración de tipos index.d.ts . El único propósito de este archivo de declaración de tipo es obtener sugerencias de autocompletado.
Dentro del archivo JS tengo una función:
module.exports.myFunction = async ({foo}) => { foo. // <-- expecting to get suggestion "bar" } ¿Cómo debe verse el archivo de declaración de tipos de TypeScript para proporcionar autocompletado para la bar que está dentro de este foo ?
Tratando de hacer así:
interface payload { foo: { bar: string; }; } declare function myFunction(object: payload): any; export default myFunction;Obtener tales "sugerencias":
Si necesito esta myFunction desde cualquier otra ubicación, recibo las sugerencias como se esperaba, pero quiero obtener esa sugerencia dentro de myFunction :
Estructura de archivos:
TypeScript no funciona de forma mágica, en su caso, la mejor manera de hacerlo funcionar es exportar la interfaz e importarla en un comentario JSDoc para que pueda usarse en la función de escritura. Entonces sus archivos deberían verse así:
// index.d.ts file export interface Payload { // Interface name should be capitalized foo: { bar: string; }; } // index.js file /** * @typedef {import('.').Payload} Payload */ /** * @param {Payload} param */ const myFunction = async ({ foo }) => { foo. // <-- You will get here the suggestion for "bar" }; module.exports = { myFunction };