typescript学习笔记


目录:

typescript相比JS的优势

为什么要安装解析JS的工具包?

安装解析TS的工具包

第一个TS文件

简化执行TS的步骤

数据类型

创建对象

对象方法的类型注解

接口使用

将VScode添加至右键菜单
(3)在VScode中新建ts文件:hello.ts(注意:文件后缀名为:.ts)
  • 写代码,在hello.ts中,写入以下代码,并保存。
    console.log('hello TS')
  • 执行代码,分两步 (1)TS代码->JS代码,在当前目录打开终端,输入命令:tsc hello.ts敲回车   tsc hello.ts会生成一个同名文件hello.js文件

     解决方案:无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本

    (2)执行JS:输入 node hello.js(注意:后缀为.js)。

  •  MDN(更标准)/W3school(国内)

    在浏览器中运行TS

    注意:在浏览器中只能运行JS,无法直接运行TS,因此,需要将TS转换为JS再运行。

    浏览器中运行TS的步骤:

    使用命令 tsc index.ts将TS转换为JS。

    在页面中使用script标签引入生成的js文件(注意是js文件)。

     

     示例:

    HTML

    DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>在浏览器中运行TStitle>
    head>
    <body>
        <script src="index.js">script>
    body>
    html>

    TS   index.ts

    function sum(num1: number, num2: number) {
      return num1 + num2;
    }
    let res = sum(1, 2);
    console.log(`TS代码执行了:${res}`);

      问题:每次修改TS文件后,都要重新运行tsc命令将TS转化为JS。

    解决方式:使用tsc命令的监视模式。

    tsc --watch index.ts

    解释: --watch表示启用监视模式,只要重新保存了ts文件,就会自动调用tsc将ts转化为js。

    typeScript操作dom

    DOM(Document ObjectModal):文档对象模型。DOM是浏览器提供的(浏览器特有),专门用来操作网页内容的一些JS对象。

    目的:让我们可以使用JS/TS代码来操作页面(HTML)内容,让页面“动”起来,从而实现web开发。

    HTML:超文本标记语言,用来创建网页结构。

    两者的关系:浏览器根据HTML内容创建相应的DOM对象,也就是:每个HTML标签都有对应的DOM对象

    DOM操作的套路(技巧):先找人后做事。

    获取一个DOM元素:

    document.querySelector(selector)
    document对象:文档对象(整个页面),是操作页面内容的入口对象。 selector参数:是一个css选择器(标签、类‘id选择呢器等)

    作用:查询(获取)与选择器参数匹配得DOM元素,但是只能获取到第一个。

    推荐:使用id选择器(唯一)。

     示例:

    HTML代码:

    DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>获取元素——querySelectortitle>
    head>
    <body>
        <h1 id="title">青花瓷h1>
        <p class="c1">天青色等烟雨p>
        <p class="c2">而我在等你p>
        <script src="index.js">script>
    body>
    html>

    TS代码:

    // 示例:获取id为title的DOM元素
    // let title = document.querySelector("#title");
    // console.log(title);//

    青花瓷

    // 示例:通过标签获取DOM元素 // let p = document.querySelector("p"); // console.log(p);//

    天青色等烟雨

    // 示例:通过class选择器取DOM元素 let _class = document.querySelector(".c2"); console.log(_class);//

    而我在等你

     类型断言

    问题:调用querySelector()通过id选择器获取dom元素时,拿到的元素类型都是 Element 。无法访问元素的属性,例如:无法访问img的src属性。因为 Element 类型只包含所有元素共有的属性和方法,比如:id属性、class属性。

    解决方式:使用类型断言,来手动指定 更加具体 的类型(比如,此处应该比 Element 类型更加具体)。

    语法:

    as 更具体的类型。

    示例:

    给上述HTML中加入:

    <img src="./img/red.jpg">

    TS改为:

    let _img = document.querySelector("img") as HTMLImageElement;
    console.log(_img.src);//http://xxxx/img/red.jpg

    解释:我们选择了图片标签所以确定就是图片元素,所以将类型指定为  HTMLImageElement。

    技巧:通过  console.dir()  打印DOM元素,在属性的最后面,即可看到该元素的类型。

    打印img后