[Typescript] Show the error close to where it's causes
Example code:
const routingConfig = {
routes: [
{
path: "home",
component: "HomeComponent",
},
{
path: "about",
component: 12,
},
{
path: "contact",
component: "ContactComponent",
},
],
};
const createRoutes = (config: {
routes: {
path: string;
component: string;
}[];
}) => {};
createRoutes(routingConfig);

The error message is kind of hard to read. The key problem is The 'number' is not assignable to type 'string', so how to make error message show close to where it's cause?
Solution 1: Inline the object:
createRoutes({
routes: [
{
path: "home",
component: "HomeComponent",
},
{
path: "about",
component: 12,
},
{
path: "contact",
component: "ContactComponent",
},
],
});

Solution 2: Extra a type
type RoutingConfig = {
routes: {
path: string;
component: string;
}[];
}
const routingConfig: RoutingConfig = {
routes: [
{
path: "home",
component: "HomeComponent",
},
{
path: "about",
component: 12,
},
{
path: "contact",
component: "ContactComponent",
},
],
};
const createRoutes = (config: RoutingConfig) => {};
createRoutes(routingConfig);

Solution 3: satisfies
const routingConfig = {
routes: [
{
path: "home",
component: "HomeComponent",
},
{
path: "about",
component: 12,
},
{
path: "contact",
component: "ContactComponent",
},
],
} satisfies RoutingConfig;


浙公网安备 33010602011771号