TypeScript:5分钟上手创建一个简单的Web应用

devtools/2025/2/11 12:26:25/

一、练习TypeScript实例

1.1 在src目录里创建greeter.ts

greeter.ts文件代码

// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
function greeter(name: string) {return "hello, " + name;
}
let user = "Jane User";
document.body.innerHTML = greeter(user);
1.2 编译代码

方式一:在命令行上,运行TypeScript编译器
tsc ./src/greeter.ts
在这里插入图片描述

方式二:安装Code Runner插件,直接点击编辑器右上角的 run code按钮
在这里插入图片描述

在这里插入图片描述

二、使用greeter.js文件

2.1 greeter.js代码
"use strict";
// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
function greeter(name) {return "hello, " + name;
}
let user = "Jane User";
document.body.innerHTML = greeter(user);
2.2 greeter.html代码
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><title>TypeScript Greeter</title></head><body></body><script type="text/javascript" src="../../dist/greeter.js"></script>
</html>

三、 VSCode运行html页面

3.1 安装Live Server插件

点击扩展按钮,搜索Live server,点击Install按钮
在这里插入图片描述

3.2 运行greeter.html页面

选中greeter.html文件,鼠标右击,选择Open with Live Server选项
在这里插入图片描述

运行成功,编辑器右下角可以看到端口,例如:5500

在这里插入图片描述

运行结果
在这里插入图片描述

四、接口

使用接口来描述一个拥有firstName和lastName字段的对象。 在TypeScript里,只在两个类型内部的结构兼容那么这两个类型就是兼容的。
这就允许我们在实现接口时候只要保证包含了接口要求的结构就可以,而不必明确地使用 implements语句。

编译greeter.ts代码

// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
// function greeter(name: string) {
//     return "hello, " + name;
// }
// let user = "Jane User";// 接口
// 使用接口来描述一个拥有firstName和lastName字段的对象。 在TypeScript里,只在两个类型内部的结构兼容那么这两个类型就是兼容的。
// 这就允许我们在实现接口时候只要保证包含了接口要求的结构就可以,而不必明确地使用 implements语句。interface Person {firstName: String;lastName: String;
}function greeter(person: Person) {if (person == null) {return "hello"}return "hello , " + person.firstName + person.lastName
}// let user: Person = {firstName: "国", lastName: "龙"}let user = {firstName: "国", lastName: "龙"}
// document.body.innerHTML = greeter(user);

grerter.ts生成的greeter.js代码

"use strict";
// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
// function greeter(name: string) {
//     return "hello, " + name;
// }
// let user = "Jane User";
function greeter(person) {if (person == null) {return "hello";}return "hello , " + person.firstName + person.lastName;
}
// let user: Person = {firstName: "国", lastName: "龙"}
let user = { firstName: "国", lastName: "龙" };
document.body.innerHTML = greeter(user);

运行greeter.html页面

在这里插入图片描述

五、类

TypeScript支持JavaScript的新特性,比如支持基于类的面向对象编程。

创建一个Student类,它带有一个构造函数和一些公共字段。 注意类和接口可以一起共作,程序员可以自行决定抽象的级别。

还要注意的是,在构造函数的参数上使用public等同于创建了同名的成员变量。

重新编译greeter.ts代码

// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
// function greeter(name: string) {
//     return "hello, " + name;
// }
// let user = "Jane User";// 接口
// 使用接口来描述一个拥有firstName和lastName字段的对象。 在TypeScript里,只在两个类型内部的结构兼容那么这两个类型就是兼容的。
// 这就允许我们在实现接口时候只要保证包含了接口要求的结构就可以,而不必明确地使用 implements语句。// interface Person {
//     firstName: String;
//     lastName: String;
// }// function greeter(person: Person) {
//     if (person == null) {
//         return "hello"
//     }
//     return "hello , " + person.firstName + person.lastName
// }// let user: Person = {firstName: "国", lastName: "龙"}// let user = { firstName: "国", lastName: "龙" }
// document.body.innerHTML = greeter(user);class Student {fullName: String;constructor(public firstName: string, public middleInitial: string, public lastName: string) {this.fullName = firstName + " " + middleInitial + " " + lastName;}
}interface Person {firstName: string;lastName: string;
}function greeter(person : Person) {return "Hello, " + person.firstName + " " + person.lastName;
}let user = new Student("Jane", "M.", "User");document.body.innerHTML = greeter(user);

greeter.ts 生成的greeter.js代码

"use strict";
// https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
// 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699
// function greeter(name: string) {
//     return "hello, " + name;
// }
// let user = "Jane User";
// 接口
// 使用接口来描述一个拥有firstName和lastName字段的对象。 在TypeScript里,只在两个类型内部的结构兼容那么这两个类型就是兼容的。
// 这就允许我们在实现接口时候只要保证包含了接口要求的结构就可以,而不必明确地使用 implements语句。
// interface Person {
//     firstName: String;
//     lastName: String;
// }
// function greeter(person: Person) {
//     if (person == null) {
//         return "hello"
//     }
//     return "hello , " + person.firstName + person.lastName
// }
// let user: Person = {firstName: "国", lastName: "龙"}
// let user = { firstName: "国", lastName: "龙" }
// document.body.innerHTML = greeter(user);
class Student {constructor(firstName, middleInitial, lastName) {this.firstName = firstName;this.middleInitial = middleInitial;this.lastName = lastName;this.fullName = firstName + " " + middleInitial + " " + lastName;}
}
function greeter(person) {return "Hello, " + person.firstName + " " + person.lastName;
}
let user = new Student("Jane", "M.", "User");
document.body.innerHTML = greeter(user);

greeter.html代码

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><title>TypeScript Greeter</title></head><body></body><script type="text/javascript" src="../../dist/greeter.js"></script>
</html>

六、LearnTypeScript 源码

点击查看LearnTypeScript 源码


http://www.ppmy.cn/devtools/157925.html

相关文章

Jenkins 使用教程:从入门到精通

在软件开发的复杂流程中&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;是提升开发效率和保障软件质量的核心实践。Jenkins 作为一款备受欢迎的开源自动化服务器&#xff0c;在 CI/CD 流程中发挥着举足轻重的作用。本文将深入、详细地介绍 Jenkins 的使用方法&am…

day4事件处理核心机制

widget.h #include "widget.h" #include "ui_widget.h" #include<QFont> //字体类 #include<QFontDialog> //字体对话框 #include<QColorDialog> #include<QColor> #include<QMessageBox> #include<QFileDialog&g…

【Matlab优化算法-第14期】基于智能优化算法的VMD信号去噪项目实践

基于智能优化算法的VMD信号去噪项目实践 一、前言 在信号处理领域&#xff0c;噪声去除是一个关键问题&#xff0c;尤其是在处理含有高斯白噪声的复杂信号时。变分模态分解&#xff08;VMD&#xff09;作为一种新兴的信号分解方法&#xff0c;因其能够自适应地分解信号而受到…

Elasticsearch 安装与使用指南

Elasticsearch 安装与使用指南 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;能够解决不断涌现出的各种用例。它提供了快速搜索、相关度排序、强大的数据分析等功能&#xff0c;广泛应用于日志分析、全文检索、应用性能监控等领域。 一、环境准备…

基于微信小程序的校园水电费管理平台设计与实现

目录 摘要 系统展示 技术介绍 MySQL数据库 Vue框架 代码实现 管理员实现登录后端代码 连接数据库 前端代码实现 获取源码 摘要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用…

ASAP Utilities:Excel 插件中的高效助手

Excel 是职场必备工具&#xff0c;但你真的用好了吗&#xff1f; 几乎每个职场人都离不开Excel&#xff0c;但很多人可能只是简单地打开文件、输入数据&#xff0c;对于批量处理数据等高级操作却无从下手。今天为大家介绍一款强大的 Excel 插件——ASAP Utilities&#xff0c;它…

MySQL 数据库的体系架构

MySQL 数据库的体系架构是其高效、灵活和可扩展性的核心基础。其设计采用 分层模块化 结构&#xff0c;主要分为以下四层&#xff1a; 1. 连接层&#xff08;Connectors & Connection Pool&#xff09; 功能&#xff1a;负责处理客户端连接、认证和权限管理。 连接管理&a…

C++ 中的 std::timed_mutex 和 std::recursive_timed_mutex

1、背景 在多线程编程中&#xff0c;互斥锁&#xff08;Mutex&#xff09;是用于保护共享资源的重要工具。C 标准库提供了多种互斥锁类型&#xff0c;其中 std::timed_mutex 和 std::recursive_timed_mutex 是两种支持超时功能的互斥锁。在阅读FastDDS源码时&#xff0c;发现了…