首页 新闻 搜索 专区 学院

TypeScript 这个函数的入参是怎么理解的

0
悬赏园豆:10 [待解决问题]
import React from 'react';
import {
  BasicLayoutProps,
  Settings as LayoutSettings,
} from '@ant-design/pro-layout';

export const layout = ({
  initialState,
}: {
  initialState: { settings?: LayoutSettings; currentUser?: API.CurrentUser };
}): BasicLayoutProps => {
  return {
    rightContentRender: () => <RightContent />,
    footerRender: () => <Footer />,
    onPageChange: () => {
      const { currentUser } = initialState;
      const { location } = history;
      // 如果没有登录,重定向到 login
      if (!currentUser && location.pathname !== '/user/login') {
        history.push('/user/login');
      }
    },
    menuHeaderRender: undefined,
    ...initialState?.settings,
  };
};

-------这里入参应该如何理解------
export const layout = ({
  initialState,
}: {
  initialState: { settings?: LayoutSettings; currentUser?: API.CurrentUser };
}): BasicLayoutProps => {
wenbolwm的主页 wenbolwm | 初学一级 | 园豆:131
提问于:2020-11-27 20:49
< >
分享
所有回答(1)
0

相当于没给参数命名而已。
简单一下翻译成JS应该是这样的
var layout = function (_a) {
var initialState = _a.initialState;
return;
};
TS和JS调用时一样layout({ initialState: { settings: .... } });

56180825 | 园豆:1545 (小虾三级) | 2020-11-28 11:34
一般定义入参这样写:
export const layout = (initialState: Any): BasicLayoutProps => {
或
interface xxx{
}
export const layout = (initialState: xxx): BasicLayoutProps => {

上面这种定义参数类型叫啥写法或哪里有文档说明吗?google了一遍没有找到,谢谢

支持(0) 反对(0) wenbolwm | 园豆:131 (初学一级) | 2020-11-28 13:09

@wenbolwm: 确实这种做法比较少,但在TS中确实可行,你将其翻译为JS就是我说的这样。

支持(0) 反对(0) 56180825 | 园豆:1545 (小虾三级) | 2020-11-28 14:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册