TypeScript-继承和函数、函数声明和重载

简介: TypeScript-继承和函数、函数声明和重载

TypeScript-继承和函数、函数声明和重载


TS 中的接口和 JS 中的类一样是可以继承的

interface LengthInterface {
    length: number
}
interface WidthInterface {
    width: number
}
interface HeightInterface {
    height: number
}
interface RectInterface extends LengthInterface, WidthInterface, HeightInterface {
    color: string
}
let rect: RectInterface = {
    length: 10,
    width: 20,
    height: 30,
    color: 'red'
}
console.log(rect);

TS 中的函数大部分和 JS 相同




JS 当中的写法


命名函数

function say(name) {
    console.log(name);
}


匿名函数

let say = function (name) {
    console.log(name);
}


箭头函数

let say = (name) => {
    console.log(name);
}




TS 当中的写法


命名函数

function say(name: string): void {
    console.log(name);
}


匿名函数

let say = function (name: string): void {
    console.log(name);
}


箭头函数

let say = (name: string): void => {
    console.log(name);
}




TS 函数完整格式

在 TS 中函数的完整格式应该是由函数的定义和实现两个部分组成的




定义一个函数


  • 根据定义实现函数
let AddFun: (a: number, b: number) => number;
AddFun = function (x: number, y: number): number {
    return x + y;
};
let res = AddFun(10, 20);
console.log(res);


  • 改造如上代码,一步到位写法
let AddFun: (a: number, b: number) => number = function (x: number, y: number): number {
    return x + y;
};
let res = AddFun(20, 20);
console.log(res);


  • 根据函数的定义自动推导对应的数据类型
let AddFun: (a: number, b: number) => number = function (x, y) {
    return x + y;
};
let res = AddFun(20, 20);
console.log(res);




TS 函数声明


声明一个函数

  • 再根据声明去实现这个函数
type AddFun = (a: number, b: number) => number;
let add: AddFun = function (x: number, y: number): number {
    return x + y;
};
let res = add(30, 20);
console.log(res);
  • 根据函数的定义自动推导对应的数据类型
type AddFun = (a: number, b: number) => number;
let add: AddFun = function (x, y) {
    return x + y;
};
let res = add(30, 20);
console.log(res);





TS 函数重载


函数的重载就是同名的函数可以根据不同的参数实现不同的功能

function getArray(x: number): number[] {
    let arr = [];
    for (let i = 0; i <= x; i++) {
        arr.push(i);
    }
    return arr;
}
function getArray(str: string): string[] {
    return str.split('');
}
  • 如上的代码如果出现在同一个 TS 文件内容会报错,需要使用 TS 函数重载来解决




定义函数的重载

function getArray(x: number): number[];
function getArray(str: string): string[];


实现函数的重载

function getArray(x: number): number[];
function getArray(str: string): string[];
function getArray(value: any): any[] {
    if (typeof value === 'string') {
        return value.split('');
    } else {
        let arr = [];
        for (let i = 0; i <= value; i++) {
            arr.push(i);
        }
        return arr;
    }
}
// let res = getArray(10);
let res = getArray('yby6.com');
console.log(res);

最后


本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
JavaScript 编译器
TypeScript中泛型在函数和类中的应用
【4月更文挑战第23天】TypeScript的泛型在函数和类中提供了灵活性,允许处理多种数据类型。了解泛型是掌握TypeScript类型系统的关键。
|
5月前
|
人工智能 JavaScript 程序员
一文彻底搞明白HarmonyOS基础TypeScript中的泛型函数
程序员Feri是一位拥有12年+经验的技术专家,擅长嵌入式、鸿蒙、人工智能和Java等领域。本文深入探讨TypeScript中的泛型函数,涵盖基础语法、类型约束、高级技巧及应用场景。通过泛型函数,实现代码逻辑与具体类型的解耦,提升类型安全性和复用性。内容包括集合操作、API抽象、工具类开发等实际应用,以及条件类型、默认类型参数和工具类型的高级技巧。最后提醒开发者注意过度泛型化和性能权衡问题,总结泛型函数在TypeScript类型系统中的核心地位及其未来发展方向。
102 1
一文彻底搞明白HarmonyOS基础TypeScript中的泛型函数
|
12月前
|
JavaScript
typeScript基础(3)_ts函数默认值和可选参数
本文介绍了在TypeScript中如何使用函数的默认值和可选参数。展示了如何为函数参数指定默认值,使得在调用函数时可以省略某些参数,以及如何定义可选参数。
830 2
|
11月前
|
移动开发 JavaScript 前端开发
TypeScript:数组类型&函数使用&内置对象
本文介绍了 TypeScript 中的数组类型、对象数组、二维数组、函数、函数重载、内置对象等概念,并通过代码示例详细展示了它们的使用方法。还提供了一个使用 HTML5 Canvas 实现的下雨效果的小案例。
203 1
|
12月前
|
JavaScript
typeScript基础(7)_函数的类型
本文介绍了TypeScript中函数的类型,包括函数声明与函数表达式的类型注解,如何定义函数的参数类型、返回类型,以及可选参数和参数默认值。还探讨了函数的剩余参数、如何使用接口定义函数的形状,以及函数重载的概念和实践。
134 0
|
JavaScript 前端开发 程序员
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
195 0
|
JavaScript
TypeScript(六)函数
TypeScript(六)函数
82 0
|
JavaScript 前端开发 API
TypeScript 函数
TypeScript 函数
|
JavaScript 前端开发
typescript 函数类型
typescript 函数类型
|
JavaScript 编译器 前端开发
11.【TypeScript 教程】函数(Function)
11.【TypeScript 教程】函数(Function)
69 0

热门文章

最新文章