typescript入門から現在までのまとめ2
2964 ワード
まとめてみました.ほとんどのtsのものをまとめました.このまとめ2は主に汎型です.団子はこの部分に対してはまだはっきりしないですが、自分の理解を話してください.皆さんの助けになりたいです.
/**
* x , , any,
* @param x
*/
// function fn(x: number): number {
// return x * 10;
// }
// fn(10);
// fn('10');
/**
*
* , ,
*
* ,
* , , T,E...
* , ,
*/
// function fn(x: T): number {
// return Number(x) * 10;
// }
//fn(1); // fn , T number
// fn(1);
// fn(1); //
// function fn(x) {
// return x * 10;
// }
// let a = fn(1);
// let b = fn(2);
// function fn(...args) {
// let arr: number[] = [];
// for (let i=0; i(arg1: T, arg2: S): [T,S]{
// return [arg1, arg2];
// }
// let a = fn('a', 1);
// function fn(arg: T[]): T[]{
// return arg;
// }
// fn( ['1','2'] );
// fn( [1,2] );
// let arr: number[] = [];
// let arr2: Array = [];
汎型のクラスclass MyArray {
private _data: T[] = [];
constructor() {
}
public mypush(v: T): number {
this._data.push(v);
return this._data.length;
}
}
// arr , T string
let arr: MyArray = new MyArray();
arr.mypush('1');
// arr , T number
let arr2: MyArray = new MyArray();
arr2.mypush(1);
// let a: Array = [1,2,'1'];
// // interface Person {
// // [attr: string]: any
// // }
// class Person {
// constructor(public username: string, public age: number) {
// }
// }
// // // // Person => Person
// // let p1: Person = new Person('Kimoo', 30);
// // function SuperMan(obj: Person) {
// // obj.fly = function() {
// // console.log('fly');
// // }
// // }
// // function getPersonObj(constructor: Person) {//
// // // Person , Person ,
// // // return new constructor();
// // return new constructor();
// // }
// // getPersonObj( Person );
// // function getArray(constructor: {new(): Array}) { // {new()}
// // return new constructor();
// // }
// // getArray( Array );
// // Person
// // let a: Person;
// // let fn1: {new (): Person};
// // interface Window {
// // [attr: string]: any
// // }
// // window.miaov = 1;
汎型制約// // function fn(a: T) {
// // a.querySelector('div');
// // }
// interface Len {
// length: number
// }
// function fn(a: T) {
// // length
// a.length
// }
// fn('1');