我需要定义一个类型,允许将预定义的键分配给 type A,并将所有其他键分配给 type B。
我试过下面的,但得到以下错误:
type Foo = "foo";
type Bar = "bar";
interface Fuz {
[key: string]: Foo
}
interface Qux {
display?: Bar
}
type Bash = Qux & Fuz;
// ERROR: TS2322 -- Type '"bar"' is not assignable to '"foo"'
const a: Bash = {
display: "bar"
};
// ERROR: TS2322 -- Type '"foo"' is not assignable to '"bar"'
const b: Bash = {
display: "foo"
};
我想这与写作基本相同:
interface Fuz {
// ERROR: TS2411 -- property 'display' of type '"bar"' is not assignable to string index type '"foo"'
display?: Bar
[key: string]: Foo
}
有没有办法实现上述目标?
慕斯王
潇潇雨雨
相关分类