以下代码段未通过类型检查:
type TaskType = 'SIMPLE' | 'COMPLEX'
interface TaskDefinition {
name: string,
task: string,
taskType: TaskType
};
const test: TaskDefinition = {
name: '',
task: '',
taskType: 'SIMPLE' // This is fine
};
const tasks : TaskDefinition[] = ["apples", "pears"].map(i => {
return {
name: i,
task: i,
taskType: 'SIMPLE' // This one is not
};
})
Run Code Online (Sandbox Code Playgroud)
{name:string; 任务:字符串; taskType:string; } [] 不能赋值 为TaskDefinition [].
尽管目标类型存在,但它似乎taskType被推断为string而不是TaskTypeTaskDefinition
造成这种情况的原因是什么?如何解决?