函数类型
一、常规参数类型
在函数形式参数列表中,为参数添加类型注解就能够定义参数的类型。例如,在下列中将 add 函数声明中的参数 x 和参数 y 的类型都定义为 number 类型。
function add(x: number, y: number){ return x + y; }
针对函数表达式和匿名函数,我们也可以使用相同的方法来定义参数的类型。
const f = function(x: number, y: number){ return x + y }
如果在函数形式参数列表中没有明确指定参数类型,并且编译器也无法推断参数类型,那么参数类型将默认为 any 类型。
function add(x,y){ return x + y; }
二、可选参数类型
在JavaScript中,函数的每一个参数都是可选参数,而在TypeScript中,默认情况下函数的每一个参数都是必选参数。
JavaScript 示例如下:
function greet(name) { console.log("Hello, " + name); }
当调用greet(John)
,这个函数会正常运行,因为name
参数是可选的。如果传递的参数比函数定义中需要的参数少,那么未被传递的参数会被设置为undefined
。
在TypeScript中,所有参数默认都是必需的。如果尝试调用一个函数而没有提供所有参数,TypeScript会抛出一个错误。例如,如果在TypeScript中定义了一个函数:
function greet(name: string) { console.log("Hello, " + name); }
调用greet(John)
,TypeScript会抛出一个错误,因为没有提供所有必需的参数。如果希望某些参数为可选的,需要明确地在函数定义中指出。这可以通过在参数名前加上问号(?
) 来实现,如下所示:
function greet(name?: string) { console.log("Hello, " + name); }
在这个例子中,name
参数就是可选的。现在可以调用greet(John)
而不会得到任何错误。
三、默认参数类型
函数默认参数类型可以通过类型注解定义,也可以根据默认参数值自动地推断类型。
例如,如果我们有一个函数,它接受两个参数,其中第二个参数有一个默认值,我们可以使用类型注解来定义这个参数的类型:
function greet(name: string, punctuation: string = '!') { return `${name}${punctuation}`; } console.log(greet('Alice')); // 'Alice!' console.log(greet('Bob', '??')); // 'Bob??'
在这个例子中,punctuation
参数有一个默认值'!'
,并且它的类型被注解为string
。如果我们试图给punctuation
参数传递一个非字符串的值,TypeScript将会发出警告。
标签:TypeScript,入门,函数,greet,参数,类型,name From: https://www.cnblogs.com/zuoyang/p/17787646.html