TypeScript接口推导props类型遇到问题

因为不想使用如下这种经典的方式进行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的这个新功能,需要什么特殊的编译增强配置?我漏掉了什么?