ts那些记得有些烦的定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 来自antd的menu组件定义
 
export interface SelectParam {
    key: string;
    keyPath: Array<string>;
    item: any;
    domEvent: Event;
    selectedKeys: Array<string>;
}
export interface ClickParam {
    key: string;
    keyPath: Array<string>;
    item: any;
    domEvent: Event;
}
export declare type MenuMode = 'vertical' | 'vertical-left' | 'vertical-right' | 'horizontal' | 'inline';
export interface MenuProps {
    id?: string;
    theme?: MenuTheme;
    mode?: MenuMode;
    selectable?: boolean;
    selectedKeys?: Array<string>;
    defaultSelectedKeys?: Array<string>;
    openKeys?: Array<string>;
    defaultOpenKeys?: Array<string>;
    onOpenChange?: (openKeys: string[]) => void;
    onSelect?: (param: SelectParam) => void;
    onDeselect?: (param: SelectParam) => void;
    onClick?: (param: ClickParam) => void;
    style?: React.CSSProperties;
    openAnimation?: string;
    openTransitionName?: string;
    motion?: Object;
    className?: string;
    prefixCls?: string;
    multiple?: boolean;
    inlineIndent?: number;
    inlineCollapsed?: boolean;
    subMenuCloseDelay?: number;
    subMenuOpenDelay?: number;
    focusable?: boolean;
    onMouseEnter?: (e: MouseEvent) => void;
    getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
    overflowedIndicator?: React.ReactNode;
    forceSubMenuRender?: boolean;
}

  

 
最近常用的:
    const modalForm = useRef<any>(null);
    const [data, setList] = useState<any[]>([]);
    const [simpleTreeList, setSimpleTreeList] = useState<never[]>([]);
    const [relaCity, setRelaCity] = useState<{
        id: string;
        areaList: Array<{ addressCode: string; addressName: string }>;
    }>();
 
 
type和interface
 
相同点:他们都是用来定义对象(或函数形状)的,都支持继承并可以互相继承。
不同点:
-写法不同,一个是type example = {},一个是 interface excample {}
- type可以定义基本类型的别名,比如:type myString = string;
- type可以通过typeof操作符进行定义,比如:type myType = typeof myObj;
- type可以声明联合类型,比如:type unionType = myType | myType2;
- type可以声明元组类型,比如:type yuanzu = [myType, myType2];
- interface可以声明合并(若是type则会报【重复定义】的警告),比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
interface myInterface {
    name: string;
}
 
interface myInterface {
    age: nuber;
}
 
那么myInterface 最后为:
{
    name: string;
    age: nuber;
}

  

declare
 
以declare生命的变量和模块,其他地方无需引入即可使用(需要在配置文件下引入声明文件,之后在include包含的文件范围内都可直接使用)
 
 
posted @   芝麻小仙女  阅读(450)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示