TypeScript语法(十一)

82 阅读2分钟

函数的返回值类型

和变量的类型注解一样,我们通常情况下不需要返回类型注解,因为TypeScript会根据 return 返回值推断函数的

返回类型:

某些第三方库处于方便理解,会明确指定返回类型,但是这个看个人喜好

匿名函数的参数

匿名函数与函数声明会有一些不同:

当一个函数出现在TypeScript可以确定该函数会被如何调用的地方时;

该函数的参数会自动指定类型;

// 通常情况下, 在定义一个函数时, 都会给参数加上类型注解的
function foo(message: string) {

}

我们并没有指定item的类型,但是item是一个string类型:

这是因为TypeScript会根据forEach函数的类型以及数组的类型推断出item的类型;

这个过程称之为上下文类型(contextual typing),因为函数执行的上下文可以帮助确定参数和返回值的类型;

const names = ["abc", "cba", "nba"]
// item根据上下文的环境推导出来的, 这个时候可以不添加的类型注解
// 上下文中的函数: 可以不添加类型注解
names.forEach(function(item) {
  console.log(item.split(""))
})

对象类型

如果我们希望限定一个函数接受的参数是一个对象,这个时候要如何限定呢?

我们可以使用对象类型;

function printPoint(point: {x: number, y: number}) {
  console.log(point.x);
  console.log(point.y)
}

printPoint({x: 123, y: 321})

export {}

在这里我们使用了一个对象来作为类型:

在对象我们可以添加属性,并且告知TypeScript该属性需要是什么类型;

属性之间可以使用 , 或者 ; 来分割,最后一个分隔符是可选的;

每个属性的类型部分也是可选的,如果不指定,那么就是any类型;

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第39天,点击查看活动详情