我有一个数据结构,其中一个键允许一组动态值。我知道这些值的潜在类型,但我无法在 Typescript 中表达。
interface KnownDynamicType {
propA: boolean;
}
interface OtherKnownDynamicType {
propB: number;
}
// I want to allow dynamic to accept either KnownDynamicType, OtherKnownDynamicType or a string as a value
interface DataModel {
name: string;
dynamic: {[key: string]: KnownDynamicType | OtherKnownDynamicType | string};
}
const data: DataModel = { // Set up some values
name: 'My Data Model',
dynamic: {
someKnownType: {
propA: true
},
someOtherKnownType: {
propB: 1
},
someField1: 'foo',
someField2: 'bar'
}
}
data.dynamic.foo = …Run Code Online (Sandbox Code Playgroud)