Java中Oracle时间索引的使用
863 2023-04-03 04:32:34
function echo<T>(a: T): T | undefined { return a}const result = echo<number>(123)function swap<T, U>(arr: [T, U]): [U, T] { return [arr[1], arr[0]]}const result2 = swap<string, number>(['123', 345])console.log(result2)interface KeyPair<T, U> { key: T, value: U}let kp: KeyPair<number, string> = { key: 1, value: "string" }let arr2: Array<number> = [1, 2, 3]
// 这种解决方式并不好,因为不仅仅只有数组才有length,字符串也有lengthfunction echoWithArr<T>(arg: T[]): T[] { console.log(arg.length) return arg}// echoWithArr('123')// 定义一个接口interface IWithLength { length: number}// 告诉这个泛型,它必须有一个length,即继承这个接口function echoWithLength<T extends IWithLength>(arg: T): T { console.log(arg.length) return arg}echoWithLength<string>('123')echoWithLength<(string | number)[]>([0, '123'])echoWithLength({ length: 10 })