sách gpt4 ai đã đi

JSDoc nâng cao (typescript)

In lại 作者:行者123 更新时间:2023-12-03 07:13:14 29 4
mua khóa gpt4 Nike

主要问题:我需要使用具体对象结构对任何对象结构进行类型扩展。

我在 VS Code 中测试的默认值。

我的解决方案:

/** @template A @typedef {{[Ki in keyof A]: A[Ki] } & {[k: string]: {} } & A} Deep3 */
/** @template A @typedef {{[Ki in keyof A]: Deep3} & {[k: string]: Deep3<{}>} & A} Deep2 */
/** @template A @typedef {{[Ki in keyof A]: Deep2} & {[k: string]: Deep2<{}>} & A} Deep */

/** @type {Deep<{a: {b: number}}>} */
let x = {a: {b: 9, c: {d: 8}}}; // ERROR: Type 'number' is not assignable to type '{ [k: string]: {}; }'
x.a.c.d = 9; // OK

我的解决方案提案导致的问题:

/** @type {Number & {[k: string]: Number}} */
let a = 9; // ERROR: Type '11' is not assignable to type '{ [k: string]: { x: number; }; }'
a.optional = 9; // OK

/** @type {Number | {[k: string]: Number}} */
let b = 9; // OK
b.optional = 9; // ERROR: Property 'optional' does not exist on type 'number'
b = 4;

这里不存在这个问题:

/** @type {Number & {optional?: Number}} */
let c = 9; // OK
c.optional = 9; // OK

在 TypeScript 中,行为是相等的。

1 Câu trả lời

您的代码帮助我找到了解决问题的方法。不确定我们是否有同样的问题,但这里是我的代码。基本上添加 Partial< code >为我删除可分配的警报! :)

/**@type { Partial<{[Ki in keyof A]: A[Ki] }> } */

nhập mô tả hình ảnh ở đây

关于javascript - 高级 JSDoc( typescript ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62403326/

29 4 0
Bài viết được đề xuất: javascript - ReactJS Axios 拦截器响应/请求
Bài viết được đề xuất: javascript - 带 form_tag 的动态选择菜单
Bài viết được đề xuất: javascript - Jquery 在没有事件触发的情况下部分工作
Bài viết được đề xuất: javascript - 谷歌标签管理器被多次加载
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com