1、'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.
function* handleSignin(action: SigninAction) { console.log(action, 'handleSignin') try{ let res: any = yield call(axios.post, `${API}/signin`, action.payload) yield put(signinSuccess()) }catch(error:any) { alert(error.response.data.error) yield put(signinFail(error.response.data.error)) } }
function* handleSignin(action: SigninAction): any { console.log(action, 'handleSignin') try{ let res: any = yield call(axios.post, `${API}/signin`, action.payload) yield put(signinSuccess()) }catch(error:any) { alert(error.response.data.error) yield put(signinFail(error.response.data.error)) } }
2、React Hook "useActive" is called conditionally. React Hooks must be called in the exact same order in every component render
function useActive(currentPath:string, path:string) { return currentPath === path ? 'ant-menu-item-selected' : '' } function getDashboardUrl() { let url = '/user/dashboard' if(isAuth()) { const { user: {role} } = isAuth() as Jwt if(role === 1) { url = '/admin/dashboard' } } return url }
function getDashboardUrl() { let url = '/user/dashboard' if(isAuth()) { const { user: {role} } = isAuth() as Jwt if(role === 1) { url = '/admin/dashboard' } } return url } function useActive(currentPath:string, path:string) { return currentPath === path ? 'ant-menu-item-selected' : '' }
3、An interface can only extend an object type or intersection of object types with statically known members
是类和接口不能 implement / extends 联合类型的类型别名。就像你用 interface 去 extends 一个 class 或另一个 interface 是可以的,但是你不能去 extends 联合类型。
interface PrivateRouteProps extends RouteProps {}
type PrivateRouteProps = RouteProps & {}
4、An argument for 'defaultValue' was not provided
5、Argument of type 'RcFile | undefined' is not assignable to parameter of type 'string | Blob'.
Type 'undefined' is not assignable to type 'string | Blob'.
6、Type 'string | undefined' is not assignable to type 'string'.
Type 'undefined' is not assignable to type 'string'.
const {productId} = useParams<{ productId: string }>() useEffect(() => { dispatch(getDetailProduct({productId})) }, [])
const {productId} = useParams<{ productId: string }>() useEffect(() => { //dispatch(getDetailProduct({productId: productId!})) dispatch(getDetailProduct({productId: productId as string})) }, [])