以下两种写法有什么区别吗?推荐那种写法

来源:2-12 泛型(Generics) 第三部分 - 类和接口

ku咖啡不加糖

2020-03-26

方式1:

interface IPlus<T> {
  (a:T, b:T,): T,
}

function concat(a: string, b: string): string {
  return a + b
}

const b: IPlus<string> = concat

方式2:

interface IPlus<T> {
  (a:T, b:T,): T,
}

function concat(a: string, b: string): string {
  return a + b
}

const b = concat

最后一行的b后面加不加: IPlus<string>感觉结果没区别呀,也都能检查类型。实际开发推荐加还是不加?

写回答

1回答

张轩

2020-03-27

同学你好 typescript 强大的一点就是类型推断 当你为一个变量赋值的时候 会根据情况自动推断被赋值的类型 https://www.typescriptlang.org/docs/handbook/type-inference.html 方式2 使用了类型推断,b 自动添加了类型,第一个例子是 只是为了证明 interface 可以描述函数类型。

实战中大多数情况是不用加的。

1
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2124 学习 · 959 问题

查看课程