Java程序员学习Typescript初级篇(java程序猿)

createh52个月前 (02-01)技术教程8

引言

对于 Java 程序员来说,TypeScript(简称 TS)是一门非常值得学习的语言。TS 是 JavaScript 的一个超集,它在 JavaScript 的基础上添加了静态类型系统,这与 Java 的静态类型特性有相似之处。本初级教程将通过类比 Java 的方式,帮助 Java 程序员快速上手 TypeScript。

环境搭建

Java 环境回顾

在 Java 中,我们需要安装 JDK(Java Development Kit),并配置好环境变量 JAVA_HOMEPATH 等。开发时可以使用 IDE 如 IntelliJ IDEA 或 Eclipse。

TypeScript 环境搭建

  1. 安装 Node.js:TS 需要 Node.js 环境,你可以从 Node.js 官网 下载并安装。安装完成后,在命令行中输入 node -vnpm -v 验证安装是否成功。
  2. 安装 TypeScript:使用 npm(Node 包管理器)全局安装 TypeScript,命令如下:npm install -g typescript
  3. 开发工具:推荐使用 Visual Studio Code(VS Code),它对 TypeScript 有很好的支持。

基础语法对比

变量声明

Java

在 Java 中,变量声明需要指定类型,例如:

int num = 10;
String str = "Hello, Java!";

TypeScript

在 TS 中,变量声明也可以指定类型,语法类似:

let num: number = 10;
let str: string = "Hello, TypeScript!";

TS 也支持类型推断,当你初始化变量时,TS 会自动推断变量的类型:

let num = 10; // 推断为 number 类型
let str = "Hello, TypeScript!"; // 推断为 string 类型

函数定义

Java

在 Java 中,函数(方法)定义需要指定返回类型和参数类型:

public class Main {
    public static int add(int a, int b) {
        return a + b;
    }
}

TypeScript

在 TS 中,函数定义也需要指定返回类型和参数类型:

function add(a: number, b: number): number {
    return a + b;
}

TS 也支持可选参数和默认参数:

function greet(name: string, greeting?: string): string {
    if (greeting) {
        return `${greeting}, ${name}!`;
    }
    return `Hello, ${name}!`;
}

function greetWithDefault(name: string, greeting: string = "Hello"): string {
    return `${greeting}, ${name}!`;
}

类和对象

Java

在 Java 中,类是对象的蓝图,通过类可以创建对象:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 30);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

TypeScript

在 TS 中,类的概念和 Java 类似:

class Person {
    private name: string;
    private age: number;

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

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

    getAge(): number {
        return this.age;
    }
}

let person = new Person("John", 30);
console.log(person.getName());
console.log(person.getAge());

TS 还支持访问修饰符 publicprivateprotected,默认是 public

接口

Java

在 Java 中,接口是一种抽象类型,定义了一组方法签名:

interface Animal {
    void makeSound();
}

class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof!");
    }
}

TypeScript

在 TS 中,接口用于定义对象的类型:

interface Animal {
    makeSound(): void;
}

class Dog implements Animal {
    makeSound() {
        console.log("Woof!");
    }
}

TS 的接口还可以用于定义函数类型、索引类型等。

编译和运行

Java

Java 代码需要先编译成字节码文件(.class),然后使用 Java 虚拟机(JVM)运行:

javac Main.java
java Main

TypeScript

TS 代码需要先编译成 JavaScript 代码,然后使用 Node.js 运行:

tsc main.ts
node main.js

总结

通过以上的对比,我们可以看到 Java 和 TypeScript 在很多方面有相似之处,尤其是静态类型系统。对于 Java 程序员来说,学习 TypeScript 的初级知识并不困难。在后续的中级和高级教程中,我们将深入探讨更多高级特性。

相关文章

Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了

先说一下两个重要的工具OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。它使用标准的文件格式(PEM/...

源码分享:在pdf上加盖电子签章(pdf加盖电子签名)

在pdf上加盖电子签章,并不是只是加个印章图片,。而是要使用一对密钥中的私钥对文件进行签字。为啥要用私钥呢?很简单,因为公钥是公开的,其他人才可以用公钥为你证明,这个文件是你签的。这就是我们常说的:私...

Java中数字签名,非对称加密实现方式

我们在做技术接口时,尤其对外提供时,为了提高服务接口的安全(防爆破,防重放,防篡改等)一般会采用接口验证的方式,但是在验证的时候为了提升参数请求前后的安全,我们会采用加密。普通加密基本都是对称的,不...

如何确保消息只被消费一次:Java实现详解

引言在分布式系统中,消息传递是系统组件间通信的重要方式,而确保消息在传递过程中只被消费一次是一个关键问题。如果一个消息被多次消费,可能会导致业务逻辑重复执行,进而产生数据不一致、错误操作等问题。特别是...

API接口签名(app接口签名)

前言基于安全考虑(防止伪造、防止重放),网关提供可配置的针对关键接口进行签名的功能。一.接口签名设计由于新规范,我们统一使用POST请求和request json body进行参数传递,所以,不考虑G...

Java基础——Java多线程(Lock接口详解)

1 基本概括2 主要介绍2.1 Lock接口的作用2.1.1 简单介绍锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源,解决数据的一致性问题。在Lock接口出现...