我正在学习类型记录,为什么在这里定义显示错误的数组?//尝试(string AC.26 number)[]
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" }
]
};发布于 2019-06-21 10:20:17
您没有在任何地方定义一个名为orgTypes的类型。从问题和评论来看,我怀疑你想要这样的东西:
// 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定义一个实际的接口,这很好,您也可以内联地这样做:
// 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上)
但几乎每当我看到有人在网上定义类似的东西,他们就会在其他地方再次需要它,所以.
发布于 2019-06-21 10:20:18
没有类型orgTypes,您将其声明为变量名。我想你想要声明一种你可以喜欢的类型
type orgs = {id: string, name: string}
interface IState {
orgTypes: Array<orgs>;
orgType: string;
}https://stackoverflow.com/questions/56701425
复制相似问题