gpt4 book ai didi

typescript - 如何扩展 typescript 中的基本类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:22 24 4
gpt4 key购买 nike

我有一个例子,其中两个属性都必须是“数字”,我在一次事故中使用了一个而不是另一个。没有什么可提示的,调试这些需要一些时间。

我想知道是否有可能扩展基本类型以确保当我尝试将 Age 类型的值分配给 Score 类型的变量(两者都是 numbers tired)时?

编辑:对于没有代码示例的原始问题感到抱歉。 Nurbol Alpysbayev 正确地解释了我的问题,他的代码示例确实代表了我希望看到的情况:

type Score = number;
type Age = number;

let score: Score = 999;
let age: Age = 45;

score = age; // I want to have this line to throw an error

最佳答案

问题的质量可能好得多,但我想我理解了。

我相信你做了这样的事情:

type Score = number
type Age = number

let score: Score = 999
let age: Age = 45

score = age // no errors (and it confused you)

现在你的问题的答案是:AgeScore 都是同一类型的类型别名,即number。这些名称只是为了方便起见,这就是为什么它们首先被称为别名

所以你在错误的任务中使用类型别名。如果你需要区分类型,那么你必须使用这样的接口(interface):

interface Score {type: 'score', value: number}
interface Age {type: 'age', value: number}

let score: Score = {type: 'score', value: 999}
let age: Age = {type: 'age', value: 45}

score = age // error

但是您应该知道,对于表示 Score 和 Age 的数据,您应该只保留 number 类型,不要过度设计它们。

关于typescript - 如何扩展 typescript 中的基本类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734713/

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