Il semble que l'inférence de l'arg d'entrée à une signature d'index générique ne fonctionne pas comme prévu (ou alors j'ai raté quelque chose).
Comment puis-je faire en sorte que le type de retour soit déduit et que la saisie soit validée correctement ?
interface Styles {
contentAlign?: string;
zIndex?: number;
}
function createTheme<S extends { [key: string]: Styles }>(theme: S) {
return theme;
}
// this works, foo is marked as invalid
const style: Styles = {
zIndex: 1,
foo: 'bar', // <-- invalid
};
// once I try to use the Styles as index signature it allows other properties
const t = createTheme({
Button: {
zIndex: 1,
foo: 'bar', // <-- valid??
},
});
J'attends Type { foo: "bar" } is not assignable to type Styles
mais il semble qu'il s'agisse d'une entrée valide