ts 怎么 使用 多个 泛型
时间: 2024-01-30 13:04:11 浏览: 132
在 TypeScript 中,可以使用逗号分隔多个泛型类型参数。例如,下面是一个定义了两个泛型类型参数的函数:
```
function pair<T, U>(a: T, b: U): [T, U] {
return [a, b];
}
let p = pair<string, number>("hello", 42);
```
在上面的例子中,我们定义了一个 `pair` 函数,它有两个泛型类型参数 `T` 和 `U`。我们可以使用这些泛型类型参数来定义函数的参数类型和返回值类型。在调用函数时,我们需要传递实际的类型参数,例如在上面的例子中,我们传递了字符串和数字作为类型参数。
需要注意的是,如果 TypeScript 可以根据上下文推断出类型参数,则可以省略类型参数。例如,下面的代码中,TypeScript 可以推断出 `T` 和 `U` 的类型为 `string` 和 `number`:
```
let p = pair("hello", 42);
```
相关问题
ts 基础类型和泛型
TS(TypeScript)是一种静态类型检查的高级编程语言,它是JavaScript的超集。在TS中,基础类型和泛型都是其重要的概念。
基础类型指的是TS中预定义的简单数据类型,例如:number、string、boolean、null、undefined等。基础类型用于表示变量或函数的数据类型,可以直接赋值给变量,也可以用作函数的参数和返回值类型。基础类型的定义和使用非常简单,只需要在变量或函数的类型声明中指定即可。
泛型(Generic)是一种在编程中广泛使用的概念,它允许我们在定义函数、类或接口时使用可变的类型。使用泛型可以提高代码的复用性和灵活性。在TS中,使用<>符号来声明使用泛型,并通过类型参数来指定具体的类型。
例如,定义一个泛型函数:
function identity<T>(arg: T): T {
return arg;
}
这个函数使用了泛型类型参数T,可以接受不同类型的实参,并返回相同类型的值。通过使用泛型,我们可以传入任意类型的参数,而不需要重写多个函数。
另外,在TS中还可以使用泛型约束来限制泛型类型的操作。通过在泛型类型参数后面添加extends关键字和约束类型,可以确保传入的类型必须满足特定条件。
总结起来,TS中的基础类型和泛型都是为了增强代码的可读性、可维护性和可靠性而设计的。基础类型用于定义简单的数据类型,而泛型则用于创建更灵活和可复用的函数、类和接口。在实际开发中,合理使用基础类型和泛型,可以提高代码的质量和开发效率。
ts中泛型可以传几个参数
在 TypeScript 中,泛型可以传递多个参数,它们可以用逗号分隔。例如:
```typescript
function merge<T, U>(obj1: T, obj2: U): T & U {
return Object.assign(obj1, obj2);
}
const mergedObj = merge({ name: "John" }, { age: 30 });
console.log(mergedObj.name); // "John"
console.log(mergedObj.age); // 30
```
在上面的例子中,`merge` 函数接受两个泛型参数 `T` 和 `U`,并返回类型为 `T & U`。这意味着返回值类型是 `T` 和 `U` 的交集类型。在调用时,我们传递了两个对象作为参数,一个包含 `name` 属性,另一个包含 `age` 属性。`merge` 函数合并了这两个对象,并返回一个包含这两个属性的新对象。
阅读全文