跳至主要內容

语法-类型注解

程序员王天大约 3 分钟

TypeScript 基础语法

TypeScript 程序由以下几个部分组成:

  • 模块
  • 函数
  • 变量
  • 语句和表达式
  • 注释

第一个 TypeScript 程序

我们可以使用以下 TypeScript 程序来输出 "Hello World" :

Runoob.ts 文件代码:

const hello: string = "Hello World!";
console.log(hello);

以上代码首先通过 tsc 命令编译:

tsc Runoob.ts

得到如下 js 代码:

Runoob.js 文件代码:

varhello = "Hello World!";
console.log(hello);

最后我们使用 node 命令来执行该 js 代码。

node Runoob.js  // 输出 Hello World

整个流程如下图所示:
image.png
我们可以同时编译多个 ts 文件:

tsc file1.ts file2.ts file3.ts

TypeScript 与面向对象

面向对象是一种对现实世界理解和抽象的方法。
TypeScript 是一种面向对象的编程语言。
面向对象主要有两个概念:对象和类。

  • 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一 个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法是类的操作的实现步骤。

下图中 girl、boy 为类,而具体的每个人为该类的对象:
image.png
TypeScript 面向对象编程实例:

class Site {
  name(): void {
    console.log("Runoob");
  }
}
var obj = new Site();
obj.name();

以上实例定义了一个类 Site,该类有一个方法 name(),该方法在终端上输出字符串 Runoob。
new 关键字创建类的对象,该对象调用方法 name()。
编译后生成的 JavaScript 代码如下:

var Site = /** @class */ (function () {
  function Site() {}
  Site.prototype.name = function () {
    console.log("Runoob");
  };
  return Site;
})();
var obj = new Site();
obj.name();

执行以上 JavaScript 代码,输出结果如下:

相关信息

Runoob

基本类型

原数据类型

JavaScript 中的数据类型,可分为两类:

1、原始数据类型(Primitive Data Types),指的是不能再细分修改的数据类型,JavaScript 中有 6 种原始数据类型。

2、引用数据类型(Reference Data Types),存储多个值、或复杂对象数据类型,比如 object

咱们介绍 5 种原始数据类型在 typeScript 中的应用

  • Boolean 布尔值
  • String 文本类型
  • Number   数字
  • Array   数组
  • Null 和 Undefined 空和未定义

在定义类似时,通过 : 声明数据类型,如:

定义一个布尔值

let a: string = "1";
let b: number = 123;
let c: null = null;
let d: undefined = undefined;
let e: Boolean = false;

console.log(a, b, c, d, e);

特殊类型

any (任意值)

允许赋值给任意类型
原则上在 typeScript 中不允许修改数据类型,咱们可以声明变量 any 类型,使数据为任意类型。

let e: any = "yyds";
e = 666;
console.log("any|e:", e);

类型推断

声明变量、未指定类型,默认是任意类型

在定义变量时未赋值,会进行类型推断的规则,推断出下一个类型,最终为 any 类型,如:

let something;
something = "seven";
something = 7;
console.log(something);
// 打印输出 7

联合类型

联合类型(union Types) 定义一个变量,可以接收多种类型的值

举个例子,假设你有一个名为 result 的变量,你希望它可以保存数字或者字符串类型的值。你可以这样声明它的类型:

let result: number | string;

现在,result 变量可以存储数字类型的值,也可以存储字符串类型的值。例如:

result = 42; // 保存数字类型的值
result = "Hello"; // 保存字符串类型的值

使用联合类型,在类型声明中将这两种类型联合起来,表示该变量可以是其中任意一种类型。这就像是给变量指定了多个备选类型。

参考资料
https://ts.xcatliu.com/introduction/what-is-typescript.htmlopen in new window
https://www.modb.pro/db/617658open in new window
https://www.runoob.com/typescript/ts-basic-syntax.htmlopen in new window

读者朋友好呀,我是王天~ 😊

尝试做过很多事情,半路出道的野生程序员、前端讲师、新手作者,最终还是喜欢写代码、乐于用文字记录热衷分享~

如文章有错误或者不严谨的地方,期待给于指正,万分感谢。🙇‍

如果喜欢或者 有所启发,欢迎 star,对作者也是一种鼓励👏

微信:「wangtian3111」,加我进王天唯一的读者群。

个人博客:https://itwangtian.com