如何在Typescript中定义对象的类型?
我有以下代码:如何在Typescript中定义对象的类型?,typescript,Typescript,我有以下代码: type Machine = { id: string, name: string, tonnage?: number } const machines = { "machine1": {id: "S01", name: "AnyMachine"} as Machine, } 是否可以指示键为字符串,值为机器类型? “作为机器进行铸造”似乎可行,但我希望有更少冗长的替代方案。您可以这样做: interface MachineHolder {
type Machine = {
id: string,
name: string,
tonnage?: number
}
const machines = {
"machine1": {id: "S01", name: "AnyMachine"} as Machine,
}
是否可以指示键为字符串,值为机器类型?
“作为机器进行铸造”似乎可行,但我希望有更少冗长的替代方案。您可以这样做:
interface MachineHolder {
[key: string]: Machine;
}
type Machine = {
id: string,
name: string,
tonnage?: number
}
const machines: MachineHolder = {
"machine1": {id: "S01", name: "AnyMachine"},
}
您可以这样做:
interface MachineHolder {
[key: string]: Machine;
}
type Machine = {
id: string,
name: string,
tonnage?: number
}
const machines: MachineHolder = {
"machine1": {id: "S01", name: "AnyMachine"},
}
您可以这样做:
type Machines = {
[key: string]: Machine;
}
const machines: Machines = {
"machine1": { id: "S01", name: "AnyMachine" }
}
但是,根据您要做的事情,可能没有必要这样做。Typescript类型系统是,因此您只需执行此操作即可工作:
const machines = {
"machine1": { id: "S01", name: "AnyMachine" }
}
function fn(machine: Machine) {
// ...
}
fn(machines.machine1);
在这里,编译器推断您正在传递正确的类型,即使机器
未定义为机器
的映射。您可以执行以下操作:
type Machines = {
[key: string]: Machine;
}
const machines: Machines = {
"machine1": { id: "S01", name: "AnyMachine" }
}
但是,根据您要做的事情,可能没有必要这样做。Typescript类型系统是,因此您只需执行此操作即可工作:
const machines = {
"machine1": { id: "S01", name: "AnyMachine" }
}
function fn(machine: Machine) {
// ...
}
fn(machines.machine1);
在这里,编译器推断您传递了正确的类型,即使
机器
没有定义为机器
的映射。谢谢,我的意图很奇怪。我只想将其用作自定义类型记录,并使用typescript工具检查我的类型,而无需编译。我知道我应该使用更好的工具,比如数据库,但这对于小数据来说没有那么痛苦:)谢谢,我的意图很奇怪。我只想将其用作自定义类型记录,并使用typescript工具检查我的类型,而无需编译。我知道我应该使用更好的工具,比如数据库,但这对于小数据来说是不那么痛苦的:)