因为不想使用如下这种经典的方式进行props配置
defineComponent({
props: {...}
...
})
所以打算体验vue3根据TypeScript接口自动推导props的能力,改用如下新方式
import { Todo } from "@/model/Todo";
import { defineComponent } from "vue";
interface TodoListProps {
todos: Todo[];
}
export default defineComponent<TodoListProps>((props) => {
return () => (
<ul>
{props.todos.map(todo =>
<li key={todo.id}>
{todo.name} |
{todo.completed ? "Completed" : "Uncompleed"}
</li>
)}
</ul>
);
});
但是,新方式无法工作,组件并未不认为todos是它的属性,导致父组件对其值的指定(无论是通过模版指定还是通过TSX指定)都被解析未no-prop attribute,导致这里的props.todos永远为undefined.
要使用vue3的这个新功能,需要什么特殊的编译增强配置?我漏掉了什么?