在开发过程中,也可以使用泛型对类进行约束。
class UserList<T> {private _userList: T[] = [];public get userList(): T[] {return this._userList;}public set userList(value: T[]) {this._userList = value;}public insert(info: T) {this._userList.push(info);}public shift(): T {return this._userList.shift() as T;}}
上面代码中定义了一个类,通过这个类可以向其中存入一个完整的数组,也可以存入单个的用户名。
接下来通过接口来当做类型。
interface UserInterface {username: string,email: string}const list = new UserList<UserInterface>();list.userList = [{username: 'root', email: 'root@example.com'}, {username: 'admin', email: 'admin@example.com'}];console.log(list.userList)list.insert({username: 'xiaoming', email: 'xiaoming@example.com'});console.log(list.shift());
