typescript基本数据类型HTMLElement与Element区别

 更新时间:2022年11月16日 16:25:50   作者:小白兔学前端  
这篇文章主要为大家介绍了typescript基本数据类型HTMLElement与Element区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

TypeScript是什么?

涉及代码仓库

github.com/Dartgm/dart…

  • TypeScript是由微软开发的一款开源的编程工具
  • TypeScript是JavaScript的超集,遵循最新的ES5/ES6规范,TypeScript扩展了JavaScript的语法
  • TypeScript更像后端Java,C#这样的面向对象的语言,也就是说可以让开发大型企业使用
  • 越来越多的项目是基于TS的,比如VSCode、Angular6、Vue3、React16
  • TS提供的类型系统可以帮助我们在写代码的时候获得更多的语法提示
  • 在创建前的编译阶段经过类型系统的检查,就可以避免很多的线上的错误

TypeScript的安装和编译

安装

cnpm i typescript -g

编译

tsc helloworld.ts

上手实践

首先我们新建一个文件夹,将该文件夹通过命令行工具打开,并且输入 code . 来执行命令

然后我们就可以用Vscode这个软件来编辑ts后缀的文件了.输入tsc --init创建tsconfig文件。如下所示

{
  "compilerOptions": {
    /* Visit https://aka.ms/tsconfig to read more about this file */
    /* Language and Environment */
    "target": "es2016",                                  
    /* Modules */
    "module": "commonjs",                                
    "esModuleInterop": true,                              
    "forceConsistentCasingInFileNames": true,            /* Ensure that casing is correct in imports. */
    /* Type Checking */
    "strict": true,                                      /* Enable all strict type-checking options. */
    "skipLibCheck": true                                 /* Skip type checking all .d.ts files. */
  }
}
名称描述
target将es编译成特定的es版本
module指定模块默认的生成规范,默认的就是commonjs
// Basic DataStruct introduction
let married:boolean = true;
let age:number = 10;
let first_name:string = 'guoming';
let arr1:number[] = [1,2,3];
let arr2:Array<number> = [4,5,6]
// tuple, number and type are know to us
let guoming:[string,number] = ['guoming',10];
// enum type
enum Gender {
    GIRL,
    BOY
}
// basic enum
console.log(Gender.BOY)
console.log(Gender.GIRL)
// const enum
const enum Colors{
    RED,YELLOW,BLUE
}
let myColor = [Colors.RED,Colors.YELLOW,Colors.BLUE]
// any type,if there is an variable declared to be any,these variable is the same like the variable in JavaScript
let root:any = document.getElementById('root')
root.style.color = 'red'
let element: (HTMLElement|null) = document.getElementById('root');
element.style.color = 'green';
// null undefined
let x:number;
x=1;
x=undefined;
x=null;
let y:(number|null|undefined)
y=1;
y=null;
y=undefined;

typescript中HTMLElement 和 Element的区别

你可能会注意到在ts中,通过document.getElementById()返回HTMLElement类型,而document.querySelect()返回Element类型。

那么两者区别是什么呢?

Element 是一个通用性非常强的基类,所有 Document 对象下的对象都继承自它。这个接口描述了所有相同种类的元素所普遍具有的方法和属性。一些接口继承自 Element 并且增加了一些额外功能的接口描述了具体的行为。

例如, HTMLElement 接口是所有 HTML 元素的基本接口,而 SVGElement 接口是所有 SVG 元素的基础。大多数功能是在这个类的更深层级(hierarchy)的接口中被进一步制定的。

探讨

查资料的过程中我发现,关于getElementById和querySelecter在MDN和ts的规范并不相同。

  • ts中
let res =document.getElementById('test');  //HTMLElement
let el = document.querySelector('# test');  // Element
  • mdn中

querySelector,getElementById两者均返回Element。

以上就是typescript基本数据类型HTMLElement与Element区别的详细内容,更多关于TS类型HTMLElement Element的资料请关注脚本之家其它相关文章!

相关文章

  • javascript数组的定义及操作实例

    javascript数组的定义及操作实例

    在文章里小编给大家整理的是关于javascript数组的定义及操作的相关知识点,需要的朋友们学习下。
    2019-11-11
  • JS关于 replace 取值、替换第几个匹配项问题小结

    JS关于 replace 取值、替换第几个匹配项问题小结

    这篇文章主要介绍了JS关于replace取值、替换第几个匹配项,本文针对字符串的替换、截取知识点做详细介绍,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • js加减乘除精度丢失问题解决

    js加减乘除精度丢失问题解决

    计算机的二进制实现和位数限制有些数无法有限表示,就会产生精度丢失问题,本文主要介绍了js加减乘除精度丢失问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)

    viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)

    这篇文章主要介绍了Viewer这一款强大的 jQuery 图像浏览插件,在信息详情页面实现点击图片可以预览,脚本之家也是用的这个js,这里为分享一下使用方法,需要的朋友可以参考下
    2020-04-04
  • 由 JavaScript 的 with 引发的探索

    由 JavaScript 的 with 引发的探索

    这篇文章主要介绍了由 JavaScript 的 with 引发的探索,js 的 with 是为对象访问提供命名空间式的访问方式,with 创建一个对象的命名空间,在这个命名空间内你可以直接访问对象的属性,而不需要通过对象来访问,下面一起来了解更多详细内容吧
    2022-01-01
  • js判断选择的时间是否大于今天的代码

    js判断选择的时间是否大于今天的代码

    判断选择的时间是否大于今天还是蛮实用的,下面与大家分享下具体的实现,感兴趣的朋友可以参考下
    2013-08-08
  • JS和JQ的event对象区别分析

    JS和JQ的event对象区别分析

    js和jq的event对象大同小异,本文简单对比下它们的'click'事件下的不同和应用,给有需要的小伙伴参考下
    2014-11-11
  • webpack源码中一些精妙的方法总结

    webpack源码中一些精妙的方法总结

    正好最近在学习webpack的源码,所以下面这篇文章主要给大家介绍了关于webpack源码中一些精妙的方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • 设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码

    设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码

    不用找了我试过好多次ie、火狐、谷歌浏览器此代码都是不可逆兼容,想把这个问题完全解决,方法就是像其他主流网站一样,下面是我的简单解决方案
    2013-03-03
  • js实现上传按钮并显示缩略图小轮子

    js实现上传按钮并显示缩略图小轮子

    这篇文章主要为大家详细介绍了js实现上传按钮并显示缩略图小轮子,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论