迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

TypeScript 中的接口与类

作者:迹忆客 最近更新:2023/03/08 浏览次数:

TypeScript 是一种强类型语言,支持复杂和原始类型。它是 JavaScript 编程语言的超集,因此,它还具有 JavaScript 中存在的不同特性,例如面向对象编程 (OOP) 概念和函数式编程概念。

TypeScript 对于拥有大型代码库的组织变得非常有用。TypeScript 有助于防止在 JavaScript 错误推断类型的情况下不可避免的运行时错误。

支持 TypeScript 的适当工具和 IDE 可以通过用户定义的各种接口或 TypeScript 编译器推断的类型来建议代码完成、检测类型中的错误、自动修复错误等等。

本篇文章将重点介绍类和接口之间的差异,并将演示何时使用哪个来对某些数据进行建模。

基本上需要类来保存具有与其关联的不同属性和方法的不同对象的实现。类可能具有已初始化的属性并在其中具有各种方法的实现,可用于初始化或创建不同的对象。

接口仅用于保存对象对应的各种属性的类型信息。它通常用于类型检查,从而防止运行时错误,不能用于对象实例化。

class Animal {
    name : string;
    eyes : number;

    constructor( name : string, eyes : number) {
        this.name = name;
        this.eyes = eyes;
    }

    getName() : string {
        return this.name;
    }

    getEyes() : number {
        return this.eyes;
    }
}

上面的代码块显示了 TypeScript 类的实现,该类包含与 Animal 类关联的不同属性的蓝图,并具有一些方法。可以使用接口对相同的数据进行建模。

interface Animal {
    name : string;
    eyes : number;

    getName : () => string;
    getEyes : () => number;
}

因此,根据接口,它具有对实现该接口的任何对象进行类型检查的所有可能性,但与类不同的是,它无法初始化类的属性,也不能对类中的函数进行任何实现。

类用作包含默认值、不同方法实现的对象蓝图,或者在使用 new 关键字创建同一类的不同实例时。此外,对于类,代码将在运行时占用空间,这与 TypeScript 编译器删除的接口不同。

与接口不同,类具有用于在类中添加一些初始化代码和初始化数据变量的构造函数。

因此,类用于表示一些复杂的数据模型,其对象可能需要创建,并且通常需要扩展,并且可能需要附加初始化逻辑。

同时,接口用于进行简单的数据建模,仅由与对象关联的属性的类型组成。

它们还可以充当某些类的数据接口,例如 class Tiger implements Animal - Tiger 类将具有与接口 Animal 中存在的相同属性的所有类型检查支持。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便