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

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

引言

对于 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/...

实现Java与前端之间国密算法加解密与签名

问题开发中发现,我们采用Java或者NodeJS的国密SM2加密、解密、签名单边操作等正常,但是通过Nodejs加密或者生成的签名在Java下就不能解密或者不能验签。整个百度都看了,还是没有搞定通过国...

消息认证码、数字签名与数字认证(消息认证码和数字签名的作用)

参考?:学习迪菲-赫尔曼密钥交换的笔记消息认证码例:通过安全的方式,A、B都获得了共享密钥,A想发送一个编号,并获取其代表的实体信息。A将明文编号XYZ加密后传给B。而此时C拦截并伪造了密文,B接到假...

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

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

java代码规范,你了解多少?(一段java代码的详细解说)

一、为啥要有代码规范?1.代码规范可以加快团队间的协作对于每个项目的开发,大多数是由一个团队来完成的,团队内部的人来自四面八方,每个人的代码风格也大不相同,如果没有统一的代码规范,那么代码的可读性会大...

常用加密/解密/签名/认证算法学习笔记

本文目录:1. 加密/解密/签名/证书概念说明2. 举例说明使用场景3. HTTP/SSL/TLS/HTTPS概念和流程4. 生成证书/公私钥的方法--------------------------...