Vue3
Node.js
TypeScript
路由
接口请求
状态管理
实战项目
求职与未来发展
类型定义
在以下的代码中,我们定义了函数的输入参数的类型与返回值的类型。
function sum(x: number, y: number): number {
return x + y
}
sum(1, "2") // Argument of type 'string' is not assignable to parameter of type 'number'.
let result: string = sum(1, 2) // Type 'number' is not assignable to type 'string'.
let n: number = sum(1, 2) // ok
$$tip
与 JavaScript 不同的是,TypeScript 中参数的数量也要匹配,不能少也不能多。
$$
function sum(x: number, y: number): number {
return x + y
}
sum(1) // An argument for 'y' was not provided.
sum(1, 2, 3) // Expected 2 arguments, but got 3.
可选参数
我们有时需要一个非必需的参数,可以加上问号定义一个可选参数。
function sum(x: number, y: number, z?: number): number {
if (z) {
return x + y + z
}
return x + y
}
sum(1, 2) // 3
sum(1, 2, 3) // 6
$$warning
可选参数必须跟在必须参数的后面。
$$
参数默认值
也可以像 JavaScript 中的一样,给参数一个默认值。
function sum(x: number, y: number = 10): number {
return x + y
}
sum(2) // 12
剩余参数
在 JavaScript 中可以通过 ...
来收集剩余参数,这些剩余参数是一个数组 ,因为也可以给它一个类型定义。
function sum(...arr: number[]): number {
return arr.reduce((x, y) => x + y)
}
sum(1, 2, 3) // 6