TypeScript中的复杂接口

7
我是一名 TypeScript 新手,正在尝试实现一个“复杂”的接口。我不确定我想要的是否可行。
我有以下 JavaScript 代码:
var simpleSetting = { setting1: 'test', setting2: 1 };

为此,我可以创建一个类似这样的接口:

interface SimpleSetting {
   setting1: string;
   setting2: number;
}

然后像这样使用它:
var simpleSetting: SimpleSetting = { setting1: 'test', setting2: 1 };

我希望能为这个声明定义一个接口:
var setting = {
    data: {
        simpleData: {
            enable: true
        },
        view: {
            expandSpeed: ""
        }
    }
};

我知道我可以创建像这样的东西:

interface View {
   expandSpeed : string;
}
interface Data {
   simpleData: SimpleData;
   view : View;
}
interface ComplexSetting {
   data : Data;
}

为了实现我想要的,但是只声明一个接口是否可能达到相同的结果,而不是三个?
1个回答

9
当然可以,只需像这样内联嵌套接口即可:
interface ComplexSetting {
  data: {
    simpleData: {enable: boolean;};
    view: {expandSpeed: string;};
  };
}

为什么我们在数据类型中以分号结束enable: boolean;和属性声明,而不是像这样用逗号{simpleData: {enable: boolean}, view: {expandSpeed: string}} - Muhammed Albarmavi

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