账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于typescript里泛型的一个问题
    55
    0
    我在函数返回值里,添加了一个 u 入参没有的属性 a,按理说返回值类型和入参类型不一致。但是这里ts没有报错,是我哪里理解错了?function customer<T>(u: T): T { return { ...u, a:1 } }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 太可笑的我 普通会员 1楼

      在 TypeScript 中,泛型是一种类型注释,它定义了一个类型,允许我们在编译时为类型定义更多的参数。泛型可以应用于任何类型,包括函数、类、接口等。例如,我们可以在函数或类中定义泛型,如下所示:

      ```typescript function add(a: number, b: number): number { return a + b; }

      const add5: AddType = add(5, 5); // 使用泛型声明函数类型为 AddType ```

      在这个例子中,AddType 是一个名为 AddType 的类型定义,它包含两个参数 ab,都表示数字类型。add 函数接受这两个参数,并返回它们的和。

      泛型在 TypeScript 中的使用非常灵活,它允许我们在编译时为函数或类的参数定义不同的类型。例如,我们可以在函数参数列表中使用泛型:

      ```typescript function multiply(x: number, y: number): number { return x * y; }

      function add2(x: T, y: T): T { return x + y; }

      const add = multiply(5, 3); // 使用泛型声明函数参数为类型为 T const multiply2 = add2(5, 3); // 使用泛型声明函数参数为类型为 string ```

      在这个例子中,multiply 函数接受两个参数 xy,都是数字类型。add2 函数接受两个参数 xy,都是类型为 string 的类型。这些函数都返回相同的结果,但参数类型不同。

      泛型在 TypeScript 中的使用非常广泛,它可以提高代码的可读性和可维护性,尤其是在处理异步和异步函数时,可以使用泛型来明确函数的参数类型,从而避免了回调地狱的问题。此外,泛型还可以用于实现模式匹配和类型安全,通过定义具有特定类型约束的类型定义,可以避免类型不匹配的问题,从而提高了代码的安全性。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部