Javascript 如何描述具有动态名称的typescript中的a类型?
我想描述一种具有以下行为的类型Javascript 如何描述具有动态名称的typescript中的a类型?,javascript,typescript,angular,Javascript,Typescript,Angular,我想描述一种具有以下行为的类型 export class myData { key : string; display_name : string; } 但是,我希望键和display\u name具有我提供的实际键和display\u名称的动态名称 以下是有效的myData类型 mySample1:myData = { myKey : 'myKeyValue' myName : 'myNameValue' } mySampl
export class myData {
key : string;
display_name : string;
}
但是,我希望键
和display\u name
具有我提供的实际键和display\u名称的动态名称
以下是有效的myData类型
mySample1:myData =
{
myKey : 'myKeyValue'
myName : 'myNameValue'
}
mySample1:myData =
{
myKey2 : 'myKeyValue2'
myName2 : 'myNameValue2'
}
这样做的动机是,我从API中获得了大量数据,这些数据返回了一个对象列表,其中的键数相同,每个键的值类型也相同。但问题是,每个数据都有不同的键名
我想在angular2中创建一个组件
,该组件只获取一个具有一定数量键的对象列表,并且每个键的值必须是特定类型
例如,我不希望我的组件
var test =
{
myKey2 : 1
myName2 : 'myNameValue2'
}
或
这在typescript中可能吗?如果可能的话,这在typescript中是个好主意吗
以下是有效的myData类型
mySample1:myData =
{
myKey : 'myKeyValue'
myName : 'myNameValue'
}
mySample1:myData =
{
myKey2 : 'myKeyValue2'
myName2 : 'myNameValue2'
}
打字脚本是结构化的。由于您希望这两项都有效:
您可以轻松地将myData
声明为这两种类型的联合体:
type MyData = {
myKey: string;
myName: string;
}
| {
myKey2: string;
myName2: string;
}
let mySample1: MyData =
{
myKey: 'myKeyValue',
myName: 'myNameValue'
}
mySample1 =
{
myKey2: 'myKeyValue2',
myName2: 'myNameValue2'
}
type MyData = {
myKey: string;
myName: string;
}
| {
myKey2: string;
myName2: string;
}
let mySample1: MyData =
{
myKey: 'myKeyValue',
myName: 'myNameValue'
}
mySample1 =
{
myKey2: 'myKeyValue2',
myName2: 'myNameValue2'
}