TypeScript笔记①—学前准备与变量

本文介绍了TypeScript的安装、IDE配置、编译与调试方法,包括使用VSCode、tsconfig.json配置文件及实时监控编译。同时讲解了TypeScript的基础语法,如变量声明、函数类型、字符串格式化以及类型断言。通过实例展示了如何将TS代码编译为JS并运行。
摘要由CSDN通过智能技术生成

学前准备

安装

使用Node.js安装:npm install typescript -g

使用IDE:VsCode

下载地址:Visual Studio Code - Code Editing. Redefined

安装扩展:TypeScript Extension Pack

编译调试ts文件

TS文件编译为JS文件,TS文件并不能直接在Web中运行

  1. 编译TS文件命令tsc 文件名

例如:hello.ts文件在执行完tsc hello.ts后得到

在这里插入图片描述

实时监控TS文件编译为JS文件:tsc 文件名 -w

  1. 调试

    • 使用node hello.jsvscode控制台可以看到输出
    // hello.js
    console.log("Hello World");
    

在这里插入图片描述

  • 使用html中引入js文件在浏览器控制台中得到输出
<script src="./hello.js"></script>
  1. ts配置文件tsconfig

创建文件树

在这里插入图片描述

  • dist文件夹用来输出src中源代码编译文件
  • src文件夹用来存放原代码
  • 根目录下的tsconfig.json用来设置ts文件的配置
tsconfig.json内容:
{
	// ** 表示任意目录 * 表示任意文件
	"include": ["./src/**/*"],
	// 不需要编译的选项
	"exclude": [],
	// 编译器可选选项
	"compilerOptions": {
		// 设置编译ts被编译为ES6版本, 默认为ES3
		"target": "ES6",
		// module模块化使用的版本
		"module": "ES6",
		// outDir 指定编译后文件所在目录
		"outDir": "./dist",
		// outFile 将代码合并为一个文件 (如需使用,module需要设置为system或amd)
		// "outFile": "./dist/index.js"
		// 是否对JS文件进行编译
		"allowJs": true,
		// 是否检查js代码是否符合规范
		"checkJs": false,
		// 是否移除注释
		"removeComments": true,
		// 不生成编译后文件
		"noEmit": false,
		// 当有错误时不生成编译文件
		"noEmitOnError": true,
		// 将编译后的文件为严格模式
		"alwaysStrict": true,
		// 是否严格检查
		"strict": true
	}
}

TypeScript基础语法

TypeScriptJavaScript的超集,所以TypeScript可以兼容JavaScript的数据类型

变量

基本类型

类型例子描述
number1, -33, 2.5任意数字
string‘hi’, “hi”, `hi`任意字符串
booleantrue、false布尔值truefalse
any*任意类型
unknown*类型安全的any
void空值(undefined没有值(或undefined
never没有值不能是任何值
object{name:'孙悟空'}任意的JS对象
array[1,2,3]任意JS数组
tuple[4,5]元素,TS新增类型,固定长度数组
enumenum{A, B}枚举,TS中新增类型

类型声明

声明变量类型
let a: number;

let b: number = 10;

let c: string = 'string';
声明函数类型
// 都不指定->js写法 (严格模式下会报错->隐式使用any类型)
function add(a, b) {
    return a + b;
}

// 只指定参数类型
function add(a: number, b: number) {
    // 返回数值类型
    return a + b;
    // 也返回字符串 return "a" + "b"; 结果为"ab"
}
// 指定参数与返回值类型
function add(a: number, b: number): number {
    return a + b;
}

格式化字符串

  • 字符串中填入数值:
let name: string = 'yxc', age: number = 18;
let s: string = `My name is ${name}, I'm ${age / 2} years old.`;
  • 定义多行字符串:
let s: string = 
`<div>
    <h2>标题</h2>
    <p>段落</p>
/div>`
  • 保留两位小数如何输出
let x: number = 1.234567;
let s: string = `${x.toFixed(2)}`;

let与const

用来声明变量,作用范围为当前作用域。

  • let用来定义变量;
  • const用来定义常量;

例如:

let s = "Hello World", x = 5;
console.log(s + " " + x);
// Hello World 5

let d = {
    name: "xiao ming",
    age: 18,
}
console.log(d);
// { name: 'xiao ming', age: 18 }

const n = 100;
console.log(n);
// 100

类型断言

  • 有些情况下,变量的类型对于我们来说是很明确,但是TS编译器却并不清楚,此时,可以通过类型断言来告诉编译器变量的类型,断言有两种形式:

    • 第一种

       let someValue: unknown = "this is a string";
       let strLength: number = (someValue as string).length;
      
    • 第二种

        let someValue: unknown = "this is a string";
        let strLength: number = (<string>someValue).length;
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值