Búsqueda de sitios web

tipos - ¿equivalente en JSDoc a `as const` de Typescript?


Estoy en un proyecto antiguo que es demasiado grande para convertirlo fácilmente a Typescript, así que he estado usando JSDoc en su lugar. La característica de Typescript que no puedo averiguar cómo replicar en JSDoc es usar as const para tipar completamente los nombres de las propiedades y los valores de un objeto estático.

// In Typescript
const anObject = {hello: 'world'} as const;
// (type shows as {hello:'world'} instead of {hello:string}

¿Hay algún equivalente a esto en JSDoc? No he podido encontrar nada que haga esto (@readonly y @const no lo hacen), así que en su lugar básicamente tengo que copiar y pegar cualquier objeto estático como un tipo para poder tipar correctamente estos casos, lo cual ciertamente no es DRY.

Respuesta #1

Desde TypeScript 4.5:

const foo = /** @type {const} */ ({x: 1});
const bar = /** @type {const} */ ("baz");

Tenga en cuenta que los paréntesis son necesarios; esta es la sintaxis de conversión, no una anotación de tipo normal.

Artículos relacionados