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
// }
}
泛型 【Vue3+ts+hoot.ts】
最新推荐文章于 2024-06-17 14:50:04 发布