gpt4 book ai didi

javascript - 在运行时强制执行类型

转载 作者:行者123 更新时间:2023-11-30 20:06:44 25 4
gpt4 key购买 nike

我有一个 user 模型类,看起来像这样:

{
firstName: string;
lastName: string;
someSwitch: boolean;
}

如果我声明一个用户,该类默认强制执行,并且在编译时会失败:

fooUser : User = {
firstName: string;
lastName: string;
}

会失败,因为它需要定义 someSwitch(除非它在类中被标记为可选)

如果不独立测试每个字段,我如何在运行时强制执行此模型,因为这在运行时会很好地工作:

someJson = {
firstName: string;
lastName: string;
}

fooUser : User = someJson;

我能做的就是简单地为 User 创建一个构造函数,并在其中分配所有必需的内容,然后在我需要时创建对象,但是必须为一个简单的数据创建一个构造函数似乎很奇怪模型,也许我只是看得更远,这是正确的解决方案。

最佳答案

不幸的是,如果不测试所需的属性,就无法在 js 中执行此操作。您可以进行 typeof(x) 检查,但这只会对基本类型(对象、字符串、数字、 bool 值)有帮助。

编辑

经过进一步研究,我认为您实际上可以用 instanceof 做这样的事情运算符(operator)。

The instanceof operator tests the presence of constructor.prototype in object's prototype chain.

关于javascript - 在运行时强制执行类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52839222/

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