X Tutup
--- aliases: [] tags: - typerscript - ts - js - javascript created: 2023-08-02 11:41:26 modified: 2024-07-07 03:29:24 --- # TypeScript 笔记 --- ## 目录 --- ## 安装 ### 安装 NodeJS [安装nodejs](NodeJS_Note.md#node_install) ### 安装 tsc ```shell npm i tsc -g ``` #### 常用 tsc 命令 * `tsc`:编译当前目录下所有 ts 文件 * `tsc xxx.ts`:编译当头目录下指定 ts 文件 * `tsc -w xxx.ts `:监听指定 ts 文件,只要文件保存就对其进行编译 ### 安装 ts-node `ts-node` 这个工具是用于编译运行 ts 文件,节省每次都敲下 `tsc` 编译 ts 及 `node` 运行编译后的 js。 ```shell npm i ts-node -g ``` ### 初始化项目 在项目根目录下,执行以下命令,可以初始化该项目: ```shell tsc --init ``` > [!info] 关于 init > > 会在初始项目,并在项目中生成一个 `tsconfig.json` 的配置文件。 --- ## TS 项目 ### 编译上下文 使用 `tsc --init` 命令初始化项目后,会在项目根目录中生成一个 `tsconfig.json` 文件,这个就是 TypeScript 的编译上下文配置文件。 #### tsconfig 部分属性解析 `target`:指定 ECMAScript 目标版本。`ES3`、`ES5`、`ES2015`、`ES2016` 等。 --- ## 类型 ### 基本类型 #### number ts 中的 number 类型包括:整型、浮点、二进制、八进制、十六进制。 ```typescript let num1 :number= 1 //整型 let num2 :number= 0.1 // 浮点型 let num3 :number= 0b001 // 二进制以 「0b」或「0B」开头 let num4 :number= 0o12 // 八进制以「0o」或「0O」开头 let num5 :number= 0x22 // 十六进制以「0X」或「0x」开头 ``` 如果变量值为 `NaN`,则表示此变量不是一个数字。 > [!tip] NaN > > Not a Number #### 字符串 ```typescript let s1 :string = "hello" ``` #### 空类型 空类型有三种: * null * undefined * void > [!info] null 与 undefined 区别 > > `null` 指曾赋过值,但目前没有值。`null` 是关键字,不是标识符,所以不能将其作为变量来使用和赋值。 > > `undefined` 指从未赋值。`undefined` 是标识符,可以当作变量来使用和赋值。 > > **严格模式**下,`null` 和 `undefined` 两种类型的变量不能互相赋值。 > [!tip] > > `tsconfig.json` 文件中启用了 `strictNullChecks` #### 特殊类型 ##### any 使用 any 类型时,实质是关闭 ts 的类型检查。 ##### unknown unknown 类型跟 any 类型非常相似,但更安全。 ##### never --- ### 联合类型 ```typescript let n1: string | number = "hello" ``` --- ### 数组类型 可以限定数组中存放数据的类型,可以是多种: ```typescript let a1: (string | number)[] = ["shell", 123] ``` > [!info] 数组类型 > > 原生 JS 数组本来就是可以存在任何类型的数据,而且可以混着放,但对于真正开发而言,这种「高自由度」是不利于开发规范性的,所以 TS 就在编译期对这个「自由度」作了适当的限制。 --- ## 相关笔记 * [TypeScript视频清单](TypeScript_Videos.md)
X Tutup