JSDoc 等同于 Typescript 的 as const?
JSDoc equivalent to Typescript's `as const`?
我在一个旧项目中,该项目太大而无法轻松转换为 Typescript,所以我一直在使用 JSDoc。我无法弄清楚如何在 JSDoc 中复制的 Typescript 功能正在使用 as const
来完全键入静态对象的 属性 名称和值。
// In Typescript
const anObject = {hello: 'world'} as const;
// (type shows as {hello:'world'} instead of {hello:string}
JSDoc 中是否有与此等效的内容?我完全找不到任何可以做到这一点的东西(@readonly
和 @const
不这样做),所以我必须基本上复制粘贴任何静态对象作为一种类型才能正确输入这些案例,这当然不是 DRY。
从打字稿 4.5 开始:
const foo = /** @type {const} */ ({x: 1});
const bar = /** @type {const} */ ("baz");
注意括号是必须的;这是转换语法,不是普通类型注释。
我在一个旧项目中,该项目太大而无法轻松转换为 Typescript,所以我一直在使用 JSDoc。我无法弄清楚如何在 JSDoc 中复制的 Typescript 功能正在使用 as const
来完全键入静态对象的 属性 名称和值。
// In Typescript
const anObject = {hello: 'world'} as const;
// (type shows as {hello:'world'} instead of {hello:string}
JSDoc 中是否有与此等效的内容?我完全找不到任何可以做到这一点的东西(@readonly
和 @const
不这样做),所以我必须基本上复制粘贴任何静态对象作为一种类型才能正确输入这些案例,这当然不是 DRY。
从打字稿 4.5 开始:
const foo = /** @type {const} */ ({x: 1});
const bar = /** @type {const} */ ("baz");
注意括号是必须的;这是转换语法,不是普通类型注释。