一、默认参数

1、类似选择传参

  1. //默认参数-可以选择不传
  2. function fun(num: number, s:string="hello world"):string{
  3. return num + s;
  4. }
  5. fun(20);

二、选择传参

  1. // age?: number 表示可选参数(传与不穿都可以)
  2. // 注意:可选参数要放到参数的 最后面 定义
  3. function func(name:string, age?: number):any{
  4. if(age) {
  5. return name + age;
  6. } else {
  7. return name;
  8. }
  9. }
  10. fun ('张三')

三、三点运算符

  1. export default defineComponent({
  2. name: 'Test',
  3. setup() {
  4. const fun = (...res: number[]): number => {
  5. let sum = 0;
  6. for(let i = 0; i < res.length; i++) {
  7. sum += res[i];
  8. }
  9. return sum;
  10. }
  11. alert(fun(1, 2, 3, 4, 5)); // 传多个参数(会将参数赋值给res)
  12. return {
  13. fun
  14. }
  15. },
  16. });
  17. </script>

四、ts中函数的重载

1、写法1:

  1. export default defineComponent({
  2. name: 'Test',
  3. setup() {
  4. function fun(name: string): string
  5. function fun(age: number): string
  6. function fun(params: any): any {
  7. if (typeof(params) === 'string') {
  8. return '我的名字是:' + params;
  9. } else {
  10. return '我的年龄是:' + params;
  11. }
  12. }
  13. // 传入什么类型的参数,走那个参数类型的函数
  14. alert(fun(20)); // 我的年龄是:20
  15. alert(fun('张三')); // 我的名字是:张三
  16. return {
  17. fun
  18. }
  19. },
  20. });
  21. </script>

2、写法2:

  1. export default defineComponent({
  2. name: 'Test',
  3. setup() {
  4. function fun(name: string): string
  5. function fun(name:string, age: number): string
  6. function fun(name:string, age?: any): any {
  7. if (age) {
  8. return '我的名字是:' + name + '我的年龄是:' + age;
  9. } else {
  10. return '我的名字是:' + name;
  11. }
  12. }
  13. alert(fun('张三', 18));
  14. return {
  15. fun
  16. }
  17. },
  18. });
  19. </script>