{
// TypeScript infers types from AccessorChain:
// params.name is string (from AccessorChain)
// params.age is number (from AccessorChain)
// params.active is boolean (from AccessorChain)
const name: string = params.name;
const age: number = params.age;
const active: boolean = params.active;
return ;
}}
/>
);
let store = new Store({
data: {
user: {
name: "John",
age: 30,
active: true,
},
},
});
const component = await createTestRenderer(store, widget);
let tree = component.toJSON();
assert.deepEqual(tree, {
type: "div",
props: {},
children: [
{
type: "span",
props: {},
children: ["John is 30 years old and active"],
},
],
});
});
it("infers types from literal params", async () => {
// When using literal values, TypeScript can infer their types
let widget = (