gpt4 book ai didi

typescript :可以使用省略、可选、交集类型将数字类型分配给字符串类型

转载 作者:行者123 更新时间:2023-12-05 04:26:16 25 4
gpt4 key购买 nike

请问为什么下面的代码不会报错?

Playground Link

type NumberType = {
field?: { id: string; numberOrString?: number }
};
type StringType = Omit<NumberType, "field"> & {
field?: { id: string } & { numberOrString?: string }
};

const test = (s: StringType) => {
// `numberOrString?: number` can be assigned to `numberOrString?: string`
const n: NumberType = s; // no error
};

最佳答案

这是 TypeScript 中的一个已知错误,请参阅 microsoft/TypeScript#19927 .

你的 Omit<NumberType, "field"> type 的计算结果相当于 {[K in never]: ...} ,显然是这样的交叉点 never -keyed 映射类型和其他具有可选属性的对象类型未被正确检查。这个错误已经公开了很长时间,所以不清楚何时或什至会被修复;大概人们不会经常遇到它?如果你很关心你可能想给那个问题一个 👍 或描述你的实际用例,但我不知道它是否会产生任何影响。

关于 typescript :可以使用省略、可选、交集类型将数字类型分配给字符串类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73092838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com