2
は、私はすべてのプロパティは、特定のタイプを持っていると思いますが、私は明示的に宣言されたものは、それを上書きしたい:いくつかを除いてすべてのオブジェクトのプロパティを一般化する方法は?
interface Potato {
a: number
[all:string]: string
}
は、私はすべてのプロパティは、特定のタイプを持っていると思いますが、私は明示的に宣言されたものは、それを上書きしたい:いくつかを除いてすべてのオブジェクトのプロパティを一般化する方法は?
interface Potato {
a: number
[all:string]: string
}
あなたはintersection typesを使用することによって、これを達成することができます:
type PotatoAll = { [all: string]: string };
type Potato = PotatoAll & { a: number };
let p = {} as Potato;
p['foo'] = 'foo';
p.a = 1;
p['a'] = 1;
p['foo'] = 1; //error
p['a'] = 'a'; //error
p.a = 'a'; //error