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

目录
  • TypeScript是什么?
  • TypeScript的安装和编译
  • 上手实践
  • 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的资料请关注我们其它相关文章!

(0)

相关推荐

  • TypeScript 背后的结构化类型系统原理详解

    目录 前言 什么是结构化类型系统? 什么是标称类型系统? 结构化类型系统等价于鸭子类型系统吗? 如何在 TypeScript 中模拟标称类型系统? 交叉类型实现 类实现 总结 前言 你能说清楚类型.类型系统.类型检查这三个的区别吗?在理解TypeScript的结构化类型系统之前,我们首先要搞清楚这三个概念和它们之间的关系 类型:即对变量的访问限制与赋值限制.如 TypeScript 中的原始类型.对象类型.函数类型和字面量类型等类型,当一个变量类型确定后,你不能访问这个类型中不存在的属性或方法,

  • TypeScript的类型指令单行注释详解

    目录 正文 @ts-ignore 和 @ts-expect-error @ts-check 和 @ts-nocheck 正文 单行注释应该在项目里用的很少吧, 我没见过在项目中使用过, 但是了解一下又不吃亏! 那么一起来看看吧!这里开启了TypeScript提示器. 这里谈谈我对它的理解,也可以看看林不渡的TypeScript小册 一般单行注释是以@ts-开头 @ts-ignore 和 @ts-expect-error @ts-ignore 和 @ts-expect-error 仅仅对紧随其后的

  • Zod进行TypeScript类型验证使用详解

    目录 引言 什么是类型验证,为什么需要它? 为什么要使用zod? 使用 Zod 进行类型验证的示例 Primitives 对象 类型推断 组合类型 注意事项 安全解析 无法识别的Key被删除 其他事项 Zod 与其他库的比较 结论 引言 这篇文章将描述如何使用Zod为您的项目设置类型验证.Zod 是一个用于类型声明和验证的开源 TypeScript 库.我们将研究为什么使用 Zod 进行类型验证,提供如何使用它的示例,并将其与其他库进行比较. 什么是类型验证,为什么需要它? 类型验证是验证数据结

  • 详解Anyscript开发指南绕过typescript类型检查

    目录 前言 场景设定 解决方法 注释忽略 场景用例 类型断言 场景用例 泛型转换 场景用例 总结 前言 随着越来越多的前端项目采用 typescript 来开发,越来越多前端开发者会接触.使用这门语言.它是前端项目工程化的一个重要帮手,结合 vscode 编辑器,给予了前端开发者更严谨.高效的编码体验.但同时,严格的类型检查也会使部分开发者的编码效率有所降低,将时间花费在解决类型冲突.类型不匹配上,从而导致望而却步,迟迟不敢上手. 本文描述了几种绕过 typescript 类型检查的方法,帮助t

  • TypeScript实用技巧 Nominal Typing名义类型详解

    目录 Nominal Typing(名义类型) 概念解析 拓展应用 在Vue中的应用 Nominal Typing(名义类型) 概念解析 意思是给一个类型附加上一个“名义”,从而防止结构类型在某些情况下由于类型结构相似而被错用.假设有如下代码: interface Vector2D { x: number, y: number }; interface Vector3D { x: number, y: number, z: number }; function calc(vector: Vect

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

    目录 TypeScript是什么? TypeScript的安装和编译 上手实践 typescript中HTMLElement 和 Element的区别 探讨 TypeScript是什么? 涉及代码仓库 github.com/Dartgm/dart… TypeScript是由微软开发的一款开源的编程工具 TypeScript是JavaScript的超集,遵循最新的ES5/ES6规范,TypeScript扩展了JavaScript的语法 TypeScript更像后端Java,C#这样的面向对象的语言

  • TypeScript里string和String的区别

    目录 背景 1.原生string 2.对象String 3.代码对比 4.为什么需要String对象 4.两者区别总结 摘要:通常来说,string表示原生类型,而String表示对象. 背景 与JavaScript语言不同的是,TypeScript使用的是静态类型,比如说它指定了变量可以保存的数据类型.如下图所示,如果在JS中,指定变量可以保存的数据类型,会报错:“类型注释只可以在TS文件中被使用”: TypeScript是JavaScript的超集(superset),TypeScript需

  • 详解TypeScript中type与interface的区别

    目录 类型别名 type 接口 interface interface和type的相似之处 都可以描述 Object和Function Type Interface 二者都可以被继承 interface 继承 interface interface 继承 type type 继承 type type 继承 interface 实现 implements 二者区别 1. 定义基本类型别名 2. 声明联合类型 3. 声明元组 4. 声明合并 5. 索引签名问题 总结 类型别名 type 首先认识一下

  • TypeScript 基本数据类型实例详解

    目录 TypeScript 介绍 类型分配 类型推导 数组 元组 object null 和 undefined 特殊类型 any unknown never void TypeScript 介绍 TypeScript 是 JavaScript 的超集,提供了 JavaScript 的所有功能,并提供了可选的静态类型.Mixin.类.接口和泛型等特性. TypeScript 的目标是通过其类型系统帮助及早发现错误并提高 JavaScript 开发效率. 通过 TypeScript 编译器或 Ba

  • typescript中type和interface的区别有哪些

    目录 前言 type和interface的相同点 type和interface的不同点 结语 如何选择 Interface . Type 总结 前言 在typescript里面,有两个概念十分容易混淆,那便是 type 和 interface,它俩都可以用来表示 接口,但是实际使用上会存在一些差异,因此本篇文章就准备聊聊它俩,彻底弄清它俩的联系与区别,废话不多说,开搞! type和interface的相同点 在我看来,它俩就是对 接口定义 的两种不同形式,目的都是一样的,都是用来定义 对象 或者

  • 详细聊聊TypeScript中unknown与any的区别

    目录 前言 1. unknown vs any 2. unknown 和 any 的心智模式 3.总结 总结 前言 我们知道 any 类型的变量可以被赋给任何值. let myVar: any = 0; myVar = '1'; myVar = false; TypeScript 指南并不鼓励使用 any,因为使用它就会丢掉类型限制--而需要类型限制也是我们选择 TypeScript 的一个原因,所以就是有点背道而驰. TypeScript(3.0 及以上版本)还提供了一种类似于 any 的特殊

  • TypeScript中let和var的区别介绍

    目录 1.作用域不同 2.let没有变量提升 3.let变量不能重复声明 4.for循环中的let与var 1.作用域不同 用var声明的变量,只有函数作用域和全局作用域,没有块级作用域.而let可以实现块级作用域,只能在代码块{}内有效,在{}之外不能访问,如下代码所示: { let a = 0; var b = 1; } console.log(a) // ReferenceError: a is not defined console.log(b) // 1 2.let没有变量提升 在代码

  • TypeScript中type和interface的区别及注意事项

    目录 前言 概念 type interface 异同点 不同点 相同点 补充:Ts中type和interface定义类型扩展类型的方法 总结 前言 在 TS 中,type 和 interface相似,都可以给类型命名并通过该名字来引用表示的类型.不过它们之间是存在一些差别的,我们在使用时也需要注意一些特殊场景. 概念 type type关键字是声明类型别名的关键字.它的语法如下: type AliasName = Type; type:声明类型别名的关键字 AliasName:类型别名的名称 T

  • TypeScript与JavaScript的区别分析

    目录 TypeScript优势 TypeScript 与 JavaScript 的区别 TypeScript基本语法 TypeScript原始类型 1.字符串 2.数字 3.布尔值 4.Symbol原始类型 5.静态类型检测 TypeScript引用类型 1.数组 2.数组类型(Array) 3.元组类型(Tuple) 4. any 5. unknown 6. void.undefined.null 7. never 8. object 小结 TypeScript是微软开发的一个开源的编程语言,

  • TypeScript 安装使用及基本数据类型

    第一步 全局安装TypeScript 使用 npm 安装 npm install -g typescript 使用cnpm 安装 cnpm install -g typescript 使用yarn安装 yarn global add typescript 第二步 初始化TypeScript 在vscode里面 终端 >> 运行生成任务 >> tsc:监视tsconfig.json 接下来就可以开始我们的typescript旅程了~ TypeScript 的 基本数据类型 // 布尔

随机推荐