泛型 【Vue3+ts+hoot.ts】

export default function () {

    // __________________________________________________________



    // 封住的  push  方法  数据类型根据 自定义变量名   // const arr: number[] = [];

    // const arr: number[] = [];

    // function FnPush<T>(item: T): T[] {

    //     arr.push(item as number);

    //     return arr as T[]

    // }

    // FnPush<number>(12)
    // FnPush<number>(1)
    // console.log(arr);

    // return {
    //     FnPush
    // }





    // ___________________________________________________________________


    // 读取 当前 参数中的  length  
    // interface ILegnth {
    //     length: number;
    // }

    // const Fn = function <T extends ILegnth>(item: T): number {

    //     return item.length
    // }

    // console.log(Fn<string>('what are you doing'));


    // _____________________________________________________



    // 泛型 的 传递 多个参数   定义类型  根据 参数的类型来定义

    // function msg<k, v, o>(value: k, valeu2: v, valeu3: o): [k, v, o] {
    //     return [value, valeu2, valeu3];
    // }
    // console.log(msg(1, 2, 3));
    // console.log(msg('李', '鹏', '程'));



    // _____________________________________________________________________
    /* 

    interface 里面使用泛型  泛型的类型是一个用户对象
    
    */


    //     interface BaseCRUD<T> {
    //         data: Array<T>
    //         add: (t: T) => T
    //         getUserId: (id: number) => T
    //     }

    //     class User {
    //         constructor(name: string, age: number) {
    //             this.name = name;
    //             this.age = age;
    //         }
    //         id?: number
    //         name: string
    //         age: number
    //     }

    //     class CRUDUser implements BaseCRUD<User>{
    //         data: Array<User> = []
    //         add(user: User) {
    //             user.id = Date.now() + Math.random();

    //             this.data.push(user);

    //             return user;
    //         }
    //         getUserId(id: number): User {
    //             return this.data.find(user => user.id === id) as User;
    //         }
    //     }

    //     const crudUser: CRUDUser = new CRUDUser();

    //     crudUser.add(new User('blue', 1))
    //     crudUser.add(new User('pink', 2))
    //     crudUser.add(new User('red', 3))

    //     console.log(crudUser.data, 9966);


    //     return {
    //         User
    //     }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值