让js更像java一点,TypeScript入门实例

TypeScript 由微软开发的自由和开源的编程语言。

TypeScript 设计目标是开发大型应用,它是一种面向对象风格的语言并且可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上!!!

传统的JS中定义一个变量并不需要声明一个变量的类型,这就导致了在开发过程中会出现许多bug,这些bug且不容易被发现。但这些在TS中是不被允许的。

TS中的可给变量定义的基础类型有number、string、boolean、数组类型、元组、void、枚举。

在TS中声明是这样的

name:string

这便代表定义了一个类型为string的name变量。

与任何一款面向对象语言一样,TS也可以声明一个类。

我们声明一个person类作为父类,其中有它的构造函数与两个方法分别是name 与eat

class Person {
    constructor(name:String){
        console.log(name)
    }
    name(type):void{
        console.log("这是个"+type)
    }
    eat():void{

    }
}

创建一个person类的对象p,使用p调用person中的name方法并传递一个参数

var p = new Person();
p.name("黑");

运行tsy+文件名,可以将ts文件编译成js文件,然后在运行node命令运行编译好的js代码

 tsc Hello.ts
 node Hello.js

这里可以给大家看一下由ts编译好的js代码是这样的,TS避免了复杂的原型继承,大大加大了编程效率。

var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var Person = /** @class */ (function () {
    function Person(name) {
        console.log(name);
    }
    Person.prototype.name = function (type) {
        console.log("这是个" + type + "人");
    };
    Person.prototype.eat = function () {
    };
    return Person;
}());
var Teacher = /** @class */ (function (_super) {
    __extends(Teacher, _super);
    function Teacher(name) {
        return _super.call(this, name) || this;
    }
    Teacher.prototype.eat = function () {
        console.log("老师吃火锅");
    };
    return Teacher;
}(Person));
var q = new Teacher("老张");
var p = new Person("老王");
p.name("黑");
q.eat();

既然TS是面向对象的语言,也是可以实现java中的多态的。这里给大家演示一下。

class Person {
    eat():void{
        console.log("人要吃饭的")
    }
}
class Teacher extends Person {   //Teacher类继承了person类
    eat():void{
        console.log("老师吃火锅")
    }
}
var q: Person = new Teacher() //创一个类型为person类的Teacher类的对象q

q.eat(); //执行eat方法

 运行完后控制台输出老师吃火锅

 本次案例就分享到这,喜欢的朋友点赞关注喔。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值