TypeScript中的复杂对象

4
我是一名 TypeScript 新手。我想创建一个类来定义一个具有以下结构的对象:
name(string),
Array{
       "nom-colonne":
                     {
                      "type":"value",
                       "filter":"value"
                     }
     }

1
你尝试过什么吗?TypeScript 就像 JavaScript,两者的对象是相同的。 - Roljhon
我尝试创建一个名为string的类,以及Array<{"nom-colonne":{"type":"value","filter":"value"}}>,但我不知道如何声明它。 - jjijji
1
你确定你要创建一个类,而不是一个接口吗? - toskv
是的,因为我想要具有设置器和获取器而不是只读属性。 - jjijji
为什么要使用接口而不是类? @toskv - Mohammad Kermani
2
@M98 接口可以用来描述一个结构。类还封装了一些方法,对这些数据进行某些逻辑操作。因此,如果你只需要定义结构类型,最好使用接口。如果您需要将一些逻辑附加到实例,则应创建一个类。 - toskv
1个回答

10

你可能正在寻找的是一个接口。

interface IExample {
    name: string;
    array: Array<{
        nomColonne: {
            type: string,
            typeWithSpecificValues: "value", | "key" // Alternative for type
            filter: string,
        }
    }>,
}

然后像这样使用它:

let example: IExample = {
    name: "Arnold",
    array: [
        nomColonne: {
            type: "value",
            typeWithSpecificValues: "key", // Alternative for type
            filter: "value",
        },
    ],
};

我希望这就是你在寻找的。


私有的 _name:string; 私有的 _filterModel:Array<{ [s: string]: {type:string,filter:string} }> 我制作了这个结构,感谢您的帮助。 - jjijji
使用接口有什么特别的原因吗? - Mohammad Kermani
不,我使用了类来实现这个结构,因为我需要setter和getter以及其他方法 ;) - jjijji
1
@jjijji 嗯,你没有指定需要方法或属性,所以我认为你最好使用一个接口,因为我无法根据你提供的描述更好地了解情况。 - Wilco Bakker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接