【前端】-TypeScript介绍(二)

【前言】

      在上一篇博客上我们已经介绍了一下TypeScript的一些新的特性,今天我们说说中TypeScript中具有的面向对象的东西,比如,模块、类、接口。

【接口】

   TypeScript的和兴原则之一是对值所具有的shape进行类型检查,它有时被称做“鸭式辨型法”,在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。

function printLabel(labelledObj: { label: string }) {
  console.log(labelledObj.label);
}

let myObj = { size: 10, label: "Size 10 Object" };
printLabel(myObj);

  类型检查器会查看printLabel的调用。 printLabel有一个参数,并要求这个对象参数有一个名为label类型为string的属性。 需要注意的是,我们传入的对象参数实际上会包含很多属性,但是编译器只会检查那些必需的属性是否存在,并且其类型是否匹配。 然而,有些时候TypeScript却并不会这么宽松,我们下面会稍做讲解。

下面我们重写上面的例子,这次使用接口来描述:必须包含一个label属性且类型为string:

interface LabelledValue {
  label: string;
}

function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);
 

  LabelledValue接口就好比一个名字,用来描述上面例子里的要求。 它代表了有一个 label属性且类型为string的对象。 需要注意的是,我们在这里并不能像在其它语言里一样,说传给 printLabel的对象实现了这个接口。我们只会去关注值的外形。 只要传入的对象满足上面提到的必要条件,那么它就是被允许的。还有一点值得提的是,类型检查器不会去检查属性的顺序,只要相应的属性存在并且类型也是对的就可以。

【模块】

  TypeScript的模块用于代码组织,类似C#namespace。一个模块可以包含多个类和接口。可以将类和接口私有化或者导出,导出的意思就是公开,让其他模块可以访问他们。模块的关键字是export和import,我的理解就是和Java里面引入jar包差不多(这块的只是还不是很熟悉,就先不写了)。

【类】

 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 从ECMAScript 2015,也就是ECMAScript 6开始,JavaScript程序员将能够使用基于类的面向对象的方式。 使用TypeScript,我们允许开发者现在就使用这些特性,并且编译后的JavaScript可以在所有主流浏览器和平台上运行,而不需要等到下个JavaScript版本。

 下面看一个使用类的例子:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

   如果你使用过C#或Java,你会对这种语法非常熟悉。 我们声明一个 Greeter类。这个类有3个成员:一个叫做greeting的属性,一个构造函数和一个greet方法。你会注意到,我们在引用任何一个类成员的时候都用了this。 它表示我们访问的是类的成员。最后一行,我们使用new构造了Greeter类的一个实例。 它会调用之前定义的构造函数,创建一个 Greeter类型的新对象,并执行构造函数初始化它。

【总结】

    关于TypeScript的知识,我们先介绍到这里,因为TypeScript的有点之一,是可以支持Angular2.0的开发,接下来我们讨论一下关于Angular2.0的一些东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
@volar/vue-typescript是一个基于Vue.js和TypeScript的开发工具,它提供了一套用于在Vue项目中编写TypeScript代码的类型定义、代码提示和语法检查等功能。要在使用@volar/vue-typescript时进行代码检查,可以使用eslint工具以及相关配置文件。在项目中的.eslintrc.cjs文件中,可以配置eslint的规则和插件,以控制代码的质量和风格。此外,在vscode中的用户设置或工作区设置中,可以开启保存时自动格式化代码的功能,以确保代码的一致性和可读性。为了运行eslint检测脚本,可以添加lint:eslint脚本到package.json文件中,并通过运行npm run lint:eslint命令来进行代码检查。123 #### 引用[.reference_title] - *1* *3* [前端规范(一)之ESlint以及@antfu/eslint-config](https://blog.csdn.net/weixin_42424283/article/details/128806611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [TypeScript + Vue3.0 +volar Vue开发神器,制作一个step步进器案例](https://blog.csdn.net/qq_61876792/article/details/123644219)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值