首页 > 解决方案 > type script_我怎样才能给它一个类型?

问题描述

现在我正在制作一个日期保管箱,我想用 sort 对日期进行排序。

我还不熟悉 TypeScript。

发生错误,难以解决...

错误发生在“”

modifiedTodos.sort((creat1: Task, creat2: Task) => creat1.goalDate - creat2.goalDate)

错误:算术运算的左侧必须是“any”、“number”、“bigint”类型或枚举类型。ts(2362)(参数)creat1:任务

这是我的代码。

import React, {useState, useEffect} from 'react'

interface Task {
  id: number;
  taskName: string;
  status: string;
  isImportant: boolean;
  goalDate: string;
  createdAt: string;
  updatedAt: string;
}

enum DateType {
  GoalDate = 'goalDate',
    CreatedAt ='createdAt',
    UpdatedAt = 'updatedAt'
}

const Filter: React.FC = () => {
  const [todos, setTodos] = useState<Task[]>([]);
  const [modifiedTodos, setModifiedTodos] = useState<Task[]>([])
  const [status, setStatus] = useState<Status | string>("");
  const [dateType, setDateType] = useState<string>('');
  const [importance, setImportance] = useState<boolean | null>(null);
}

     ...

const sortDateType = (e: React.ChangeEvent<HTMLSelectElement>): void => {
    const date_type = e.target.value;
    setDateType(date_type)
    
    switch (date_type) {
      case 'goalDate':
        if (modifiedTodos.length > 1) {
          modifiedTodos.sort((creat1: Task, creat2: Task) => creat1.goalDate - creat2.goalDate)
          console.log(modifiedTodos)
        } else {
          todos.sort((creat1, creat2) => creat1.createdAt - creat2.createdAt)
          console.log(todos)
        }
      break;
      case 'createdAt':
        if (modifiedTodos.length > 1) {

        } else {

        }
      break;
      case 'updatedAt':
        if (modifiedTodos.length > 1) {

        } else {

        }
      break;
    }
  }

 ... 

return (<div>
    <div>
      <select name="Date" id="Date" onChange={sortDateType}>
        <option value={DateType.UpdatedAt}>latest update order</option>
        <option value={DateType.CreatedAt}>latest create order</option>
        <option value={DateType.GoalDate}>goal date</option>
      </select>
    </div>
</div>
)

}

export default Filter

标签: typescriptsortingenumsdropdown

解决方案


推荐阅读