首页 > 其他分享 >TypeScript 面试题

TypeScript 面试题

时间:2023-05-03 20:33:23浏览次数:36  
标签:面试题 TypeScript string number 接口 类型 null

一、TypeScript 是什么?

JavaScript是一种解释型的脚本语言,基于对象,跨平台的特性,活跃于各大网站制作中。而TypeScript则是以JavaScript作为基础,并对其扩展的一种新的语言,

 

二、TypeScript 的内置数据类型有哪些?

数字类型:用于表示数字类型的值。TypeScript 中的所有数字都存储为浮点值。

let identifier: number = value;

字符串类型:用于字符串类型的值

let identifier: string = " ";

布尔类型: 一个逻辑二进制开关,包含true或false

let identifier: bool = Boolean value;

未定义类型:一个未定义的字面量,它是所有变量的起点。

let num: number = null;

void 类型:分配给没有返回值的方法的类型。

let unusable: void = undefined;

三. 相比 JS Typescript 有哪些变动

1、数据类型方面

JavaScript 内数据类型

原始类型: number string boolean null undefinend symbol

复杂类型: 数组 对象 函数

TypeScript 内新增数据类型

联合类型:联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。例如:let var:string | number;只允许值的类型为字符串或者数字
自定义类型:type

接口:为使用该接口的对象定义契约或结构。 (通常用于当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型)

元组:元组中允许存储不同类型的元素,元组可以作为参数传递给函数(类似数组格式)【number,string】
字面量类型:某个特定的字符串也可以作为 TS 中的类型。任意的 JS 字面量(比如,对象、数字,字符串 等)都可以作为类型使用,例如const a = ‘JS’,字面量类型为字符串类型

枚举:都用来表示一组明确的可选值列表,枚举与字面量类型+联合类型组合的功能类似,
void:用于标识方法返回值的类型,表示该方法没有返回值。

any:因为当值的类型为 any 时,可以对该值进行任意操作,并且不会有代码提示


2、增加了静态类型

TypeScript对数据类型增加了约束,例如:username:string 代表限定 username这个变量只能接受 string 类型的参数。

好处:

(1)静态编译

通过这种对变量的约束,TypeScript可以拥有静态类型检查的功能,在程序运行之前便可以先一步检测出错误。为开发人员创建了一个更高效的编码和调试过程。

(2)代码重构

也正是因为对于变量的约束,增强了代码得可读性。这降低我们在代码重构方面的难度,让我们可以更清楚地了解程序的结构,从而更好的优化程序。ps:此外,TypeScript也增加了一些小工具,让程序员在修改代码时更加得心应手。

坏处:

使代码变得稍微冗杂,毕竟实现程序的功能根本不需要这些约束。
 

三、interface(接口)和 type(类型别名)的对比

  • 相同点:都可以给对象指定类型
  • 不同点:接口只能为对象指定类型,类型别名,不仅可以为对象指定类型,也可以为任意类型指定别名
interface IPerson {
    name: string
    age: number
    sayHi(): void
}

type IPerson = {
    name: string
    age: number
    sayHi(): void
}

type NumStr = number | string

 

三、 TypeScript 的主要特点是什么?

  • 跨平台:TypeScript 编译器可以安装在任何操作系统上,包括 Windows、macOS 和 Linux。
  • ES6 特性:TypeScript 包含计划中的 ECMAScript 2015 (ES6) 的大部分特性,例如箭头函数。
  • 面向对象的语言:TypeScript 提供所有标准的 OOP 功能,如类、接口和模块。
  • 静态类型检查:TypeScript 使用静态类型并帮助在编译时进行类型检查。因此,你可以在编写代码时发现编译时错误,而无需运行脚本。
  • 可选的静态类型:如果你习惯了 JavaScript 的动态类型,TypeScript 还允许可选的静态类型。
  • DOM 操作:您可以使用 TypeScript 来操作 DOM 以添加或删除客户端网页元素。

 

四、使用 TypeScript 有什么好处?

  • TypeScript 更具表现力,这意味着它的语法混乱更少。
  • 由于高级调试器专注于在编译时之前捕获逻辑错误,因此调试很容易。
  • 静态类型使 TypeScript 比 JavaScript 的动态类型更易于阅读和结构化。
  • 由于通用的转译,它可以跨平台使用,在客户端和服务器端项目中。

 

五、TypeScript 中的接口是什么?

接口为使用该接口的对象定义契约或结构。 

interface IEmployee {
    empCode: number;
    empName: string;
    getSalary: (number) => number; // arrow function
    getManagerName(number): string; 
}

六、TypeScript 中的模块是什么?

TypeScript 中的模块是相关变量、函数、类和接口的集合。

你可以将模块视为包含执行任务所需的一切的容器。可以导入模块以轻松地在项目之间共享代码。

 

七、TypeScript 中如何检查 null 和 undefined?

你可以使用 juggle-check(==),它检查 null 和 undefined,或者使用 strict-check(===),它返回true设置为null的值,并且不会评估true未定义的变量。

x == null

x === null

typeof x === ‘undefined’

 

八、TypeScript中如何实现函数重载?

要在 TypeScript 中重载函数,只需创建两个名称相同但参数/返回类型不同的函数。两个函数必须接受相同数量的参数。

 

标签:面试题,TypeScript,string,number,接口,类型,null
From: https://www.cnblogs.com/gqx-html/p/17369625.html

相关文章

  • TypeScript 基础语法以及注意事项
    TypeScript(简称TS)是一种由Microsoft开发的静态类型检查器,它在JavaScript的基础上添加了强类型和其他一些特性。以下是TS的一些基本语法和注意事项:变量声明 在TS中,变量声明时需要指定其类型,例如:这样就声明了一个名为myString的字符串变量,并将其赋值为"Hello,TypeScript!"......
  • 2023前端面试题一
    元素类型空元素brhr块级元素divfooterheadersectionph1h6行内元素imginputspan元素类型转换display:block独占一行,可以设置宽高display:inline不独占一行,不可以设置宽高display:inline-block不独占一行,可以设置宽高样式导入方式link@import......
  • Axios 面试题
    一、Axios是什么?Axios是一个基于promise的网络请求库,可用于node.js和浏览器中。它是isomorphic的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.jshttp模块,而在客户端(浏览器端)则使用XMLHttpRequests。特性1.从浏览器创建XMLHttpRequests,从node.js创......
  • Redux 面试题
    1、什么是Redux?Redux用于全局的状态管理 2、为什么在React项目中要使用Redux?因为React是单向数据流的,数据只能从父组件通过props流向子组件,但如果子组件要想修改父组件的值,就只能通过给绑定函数传递参数的形式来修改,一旦项目中数据比较复杂时,这种形式会搞得一团糟,所以需要Re......
  • 网络协议面试题
    1.TCP和UDP的区别?答:TCP是面向连接的传输协议,提供可靠的数据传输和错误检测,适用于对可靠性要求较高的场景,如文件传输,网页访问等;UDP是无连接的传输协议,不保证传输的可靠性,适用于对实时性要求较高的场景,如视频会议,音频传输等。2.OSI参考模型和TCP/IP协议模型的区别是什么?......
  • React 中 Router的相关面试题
    一、请你说说react的路由是什么?React的路由是纯前端的路由,就是根据hash或browserpath的变化,框架内封装好了方法,可以自由的切换DOM展示,来模拟页面或局部页面被替换的目的;让浏览器不用刷新,也能获取想要的页面结构,保存内存数据,提升用户体验 二、React-Router实现原理?当url发......
  • 面试题5-2
    一、硬链接与软链接的区别?​ 硬链接是具有相同inode号的不同名字的文件,删除一个硬链接文件不影响具有相同inode的文件。硬链接只能是对同一文件系统中的文件进行链接。不能对目录进行创建。软链接有自己的inode。文件用户数据块里面存放的内容就是文件的绝对路径。软链接可以用来......
  • Less 相关面试题
    一、Less是什么?Less(LeanerStyleSheets的缩写)是一门向后兼容的CSS扩展语言。二、声明变量@变量名:变量值 三、less封装函数less还可以像js一样的来封装函数,需要时可以直接调用。.borderName(@px){border-radius:@px;}.box5{.borderName(10px)}......
  • 2023前端面试题二
    图片png无损压缩,尺寸体积要比jpg的大,适合做小图标jpg采用压缩算法,有一点失真,比png体积要小,适合做中大图片gif一般是做动图的webp同时支持有损或者无损压缩,相同质量的图片,webp具有更小的体积css的盒子模型标准盒子模型margin/border/padding/contentie盒子模型marg......
  • typescript重写canvas --7.利用clip在指定区域绘图
    typescript重写canvas--7.利用clip在指定区域绘图1.使用canvas利用clip在指定区域绘图<!DOCTYPEHTML><html><head><metacharset="utf-8"/></head><body><canvasid="myCanvas"width="250"height="200......