javascript - TypeScript 接口(interface)没有按我的预期工作

标签 javascript typescript

所以现在,我正在尝试制作一个小型模块化 Web 应用程序。我正在使用 typescript ,我对它还很陌生。

在我的代码中,我:

  • 定义接口(interface)的结构 (ProgramList)
  • 我创建一个对象,该对象具有 ProgramInfo 类型的一个属性 (ProgramList)
  • 我使用 ProgramList 接口(interface)用一个数组项定义 ProgramList

这是我的代码:

interface ProgramInfo {
    path:string;
    name:string;
    pkgname:string[];
    start?:string[];
    cli?:string[];
}

let program = {
    ProgramList: ProgramInfo[]
};

program.ProgramList = [
    {
        path: "/default_programs/WOSPMan",
        name: "WOSPMan (WebOS Package Manager)",
        pkgname: ["com", "webos", "wospman"],
        start: ["wospman", "wospm"],
        cli: ["wospman"]
    }
];

我的 IDE (JetBrains WebStorm) 不断出现 TypeScript 编译错误:

  • TS2304:找不到名称ProgramInfo`

尽管我在前几行明确定义了 ProgramInfo

最佳答案

当你这样做时:

let program = {
    ProgramList: ProgramInfo[]
};

您使用属性ProgramList声明对象program。但是您尝试将接口(interface)数组分配给此属性,这是没有意义的。你可以这样做:

let program: {ProgramList: ProgramInfo[]} = {
    ProgramList: []
};

或者像这样:

interface Program {
    ProgramList: ProgramInfo[];
}

let program: Program = {
    ProgramList: []
};

关于javascript - TypeScript 接口(interface)没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831527/

相关文章:

javascript - iFrame 不可编辑(wysiwyg javascript)

javascript - 当有人滚动传递元素时如何更改元素的属性(粘性元素)

javascript - 使用javascript访问不同页面上的表单元素

javascript - 使用数字枚举强制值验证

javascript - 仅在托管应用程序时出现错误,但在本地主机中则不会出现错误

javascript - 在页面顶部获取脚本,因此出现 $ not Define 之类的错误

javascript - 这是 javascript 吗?我应该把它放在哪里

javascript - 在父组件的表单提交中获取子组件表单值?

angular - 如何使用 mat-sort-header 按日期字符串排序?

typescript - 如何处理 typescript 中的不同类型?