首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在学习类型记录,为什么数组在这里定义了错误?

我正在学习类型记录,为什么数组在这里定义了错误?
EN

Stack Overflow用户
提问于 2019-06-21 10:15:59
回答 2查看 26关注 0票数 0

我正在学习类型记录,为什么在这里定义显示错误的数组?//尝试(string AC.26 number)[]

代码语言:javascript
复制
interface IState {
  orgTypes: Array<orgTypes>;  //shows error here

  orgType: string;
}

const data: IState = {
  orgType: "",

  orgTypes: [
    { id: "1", name: "Vendor" },
    { id: "2", name: "Supplier" },
    { id: "3", name: "Vendor and Supplier" }
  ]
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-21 10:20:17

您没有在任何地方定义一个名为orgTypes的类型。从问题和评论来看,我怀疑你想要这样的东西:

代码语言:javascript
复制
// Define an `OrgType` type
interface OrgType {
    id: string;
    name: string;
}

// Define an `IState` type
interface IState {
  orgTypes: OrgType[]; // Or Array<OrgType>; if you prefer, same thing
  orgType: string;
}

// Define runtime data using those types
const data: IState = {
  orgType: "",

  orgTypes: [
    { id: "1", name: "Vendor" },
    { id: "2", name: "Supplier" },
    { id: "3", name: "Vendor and Supplier" }
  ]
};

(在http://www.typescriptlang.org/play/index.html#src=%2F%2F%20Define%20an%20%60OrgType%60%20type%0D%0Ainterface%20OrgType%20%7B%0D%0A%20%20%20%20id%3A%20string%3B%0D%0A%20%20%20%20name%3A%20string%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F%20Define%20an%20%60IState%60%20type%0D%0Ainterface%20IState%20%7B%0D%0A%20%20%20%20orgTypes%3A%20OrgType%5B%5D%3B%20%2F%2F%20Or%20Array%3COrgType%3E%3B%20if%20you%20prefer%2C%20same%20thing%0D%0A%20%20%20%20orgType%3A%20string%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F%20Define%20runtime%20data%20using%20those%20types%0D%0Aconst%20data%3A%20IState%20%3D%20%7B%0D%0A%20%20%20%20orgType%3A%20%22%22%2C%0D%0A%0D%0A%20%20%20%20orgTypes%3A%20%5B%0D%0A%20%20%20%20%7B%20id%3A%20%221%22%2C%20name%3A%20%22Vendor%22%20%7D%2C%0D%0A%20%20%20%20%7B%20id%3A%20%222%22%2C%20name%3A%20%22Supplier%22%20%7D%2C%0D%0A%20%20%20%20%7B%20id%3A%20%223%22%2C%20name%3A%20%22Vendor%20and%20Supplier%22%20%7D%0D%0A%20%20%20%20%5D%0D%0A%7D%3B上)

如果您不想为OrgType定义一个实际的接口,这很好,您也可以内联地这样做:

代码语言:javascript
复制
// Define an `IState` type
interface IState {
  orgTypes: {id: string; name: string;}[];
  orgType: string;
}

// Define runtime data using those types
const data: IState = {
  orgType: "",

  orgTypes: [
    { id: "1", name: "Vendor" },
    { id: "2", name: "Supplier" },
    { id: "3", name: "Vendor and Supplier" }
  ]
};

(在http://www.typescriptlang.org/play/index.html#src=%2F%2F%20Define%20an%20%60IState%60%20type%0D%0Ainterface%20IState%20%7B%0D%0A%20%20orgTypes%3A%20%7Bid%3A%20string%3B%20name%3A%20string%3B%7D%5B%5D%3B%0D%0A%20%20orgType%3A%20string%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F%20Define%20runtime%20data%20using%20those%20types%0D%0Aconst%20data%3A%20IState%20%3D%20%7B%0D%0A%20%20orgType%3A%20%22%22%2C%0D%0A%0D%0A%20%20orgTypes%3A%20%5B%0D%0A%20%20%20%20%7B%20id%3A%20%221%22%2C%20name%3A%20%22Vendor%22%20%7D%2C%0D%0A%20%20%20%20%7B%20id%3A%20%222%22%2C%20name%3A%20%22Supplier%22%20%7D%2C%0D%0A%20%20%20%20%7B%20id%3A%20%223%22%2C%20name%3A%20%22Vendor%20and%20Supplier%22%20%7D%0D%0A%20%20%5D%0D%0A%7D%3B上)

但几乎每当我看到有人在网上定义类似的东西,他们就会在其他地方再次需要它,所以.

票数 1
EN

Stack Overflow用户

发布于 2019-06-21 10:20:18

没有类型orgTypes,您将其声明为变量名。我想你想要声明一种你可以喜欢的类型

代码语言:javascript
复制
type orgs = {id: string, name: string}

interface IState {
  orgTypes: Array<orgs>;

  orgType: string;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56701425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档