javascript - Typescript - problem med index-signaturintersektion
Jag har följande typ:
type MyType = {
['x']?: string;
['y']?: number;
} & { [key: string]: string };
När jag skriver detta:
const a: MyType = {
'x': 'str',
'y': 5
}
Jag får ett fel (y är ett nummer medan en sträng förväntas) vilket är logiskt enligt indexsignaturen. Men när jag skriver så här:
const b: MyType = {};
b['x'] = 'str2';
b['y'] = 6
Det fungerar bra. Vad är skillnaden mellan de två? Ska det här ens fungera?