当前位置: 首页 > 知识库问答 >
问题:

如何防止将对象分配给类?[重复]

淳于兴朝
2023-03-14

我想知道如何防止这种情况发生?

@jsonReflect()
class TestClass {
    name?: string;
    age?: number;
    @jsonIgnore()
    address?: string;
}
const test = { name : "John", age: 10 };

问题是,创建对象{名称:“John”,年龄:10}剥离类装饰器,构造函数逻辑等的对象。如何明确防止此行为?

当涉及到像这样的对象时,还有另一个反序列化问题{名称:“约翰”,年龄:10 }。有时,我有这样的课程:

export class ConnectorSignature {
    name!: string;
    dataType!: string;
    @jsonIgnore()
    dataReference!: number;
}

像这样的类必须通过<code>JSON反序列化。解析(“一些字符串”)但反序列化后,它们也会作为“从头开始的对象”出现。所以,任何装饰器都不存在了,任何构造器逻辑都不存在,元也不存在了。例如。

// this will look like ConnectorSignature class, but...
const connectorData: ConnectorSignature = JSON.parse("some string");

// serializing it back will ignore decorator
console.log(JSON.stringify(connectorData));
/* and produce all fields: 
'{
  "name": "Blue",
  "dataType": "Integer",
  "dataReference": 2,
}'
*/

共有1个答案

柏正平
2023-03-14

将任何私有成员添加到您的类:

class TestClass {
    private isClass = true
    name?: string;
    age?: number;
    address?: string;
}

const test1: TestClass = { name : "John", age: 10 }; // error
const test2: TestClass = { name : "John", age: 10, isClass: true }; // error
const test3: TestClass = new TestClass() // fine

现在,一个简单的对象根本不可能符合该接口。

看游乐场

 类似资料:
  • 问题内容: 我有一个特定的类C的arraylist。 C类具有两个属性,即。 现在,当我将C类型的对象添加到ArrayList myList时,我想检查列表中是否已经存在对象,且其str1和str2的值与该对象的参数值(str1和str2)相匹配我要补充。 有什么有效的方法可以执行此操作,而不必每次都遍历完整列表并检查参数之间是否匹配? 问题答案: 您需要重写C类中的方法。 例如 然后,可以调用m

  • 我想把字典的value元素赋给一个字符串变量。 在swiftUI中,字典中的所有值元素都作为字符串返回?类型 什么时候有绳子?类型分配给字符串变量,该字符串变量在swiftUI应用程序中显示为可选(“字符串尝试显示”)。 如何去掉应用程序显示中的“可选”选项?

  • 我正在开发一种纸牌游戏,基于更高的胜利。从我的第一个问题开始,在这里将int值分配给图像进行比较我重写了我的代码,但是现在我被困在卡片的随机化和分配给ImageView上。 我有一张班级卡。 在主活动:我有这个卡数组: 现在我需要从这个数组中随机化四张牌,并将每张牌分配到IV。 我使用这个,因为我有翻转动画为每个卡(也许有一个更好的方法,但它为我工作)。所以现在我只需要给静脉注射分配一张卡,但这行

  • 我试图将每个列表都位于嵌套对象内的webservice模型映射到更简单的对象。 模型1 映射非常简单: 映射工作正常,除了一个问题。当我将带有null子级的父母映射到父母2并返回父母时,儿童对象是用空列表创建的。有什么方法可以防止这种情况吗?

  • 我想在 init 方法中默认 returnGroup 为 nil,但是我收到以下错误 Nil 默认参数值无法转换为类型 'Binding' 想知道如何将绑定设置为 nil ?

  • 我有两个超类(和),和一个子类。Dog类有一个所有者setter函数(。我在分配和抽象类类型时遇到问题。 阐明想法的代码示例: 假设我需要像这样使用这3个类,并且两个类具有相同的功能。我该怎么做?