文章目录

  • TypeScript相关问题及知识点
    • Q1: ts中type和interface的区别?
    • A1: 有相同点与不同点,具体内容如下。
    • Q2: ts中interface和class的区别? 分别什么时候使用?
    • A2: interface和class都能定义数据模型。区别:……
    • Q3: ts中的泛型有什么了解?
    • A3: 案例
      • 1. 不用泛型的话,这个函数可能是下面这样:
      • 2. 泛型的使用方法有两种:

TypeScript相关问题及知识点

Q1: ts中type和interface的区别?

A1: 有相同点与不同点,具体内容如下。

1. 相同点
(1) 两者都可以定义对象和函数。

interface:

 interface Person{name: string;age: number;
}
interface SetPerson {(name: string, age: number): void;
}

type:

type Person= {name: string;age: number
};
type SetPerson = (name: string, age: number)=> void;

(2) 都可以继承。
interface 定义的对象用extends继承,type&继承。二者之间可以用前面提到的自己的语法互相继承。

2. 不同点:
(1)interface可以声明合并,即声明了多个同样名称的接口可以合并成一个,而type不行。

interface Pesron{name: string;age: number;
}
interface Person{sex: string;
}
/*
Person接口为 {name: string;age: number;sex: string ;
}
*/

(2) type可以声明:基本类型的别名、联合类型、元组等类型,而interface不行。

 // 别名
type Empty=null;
// 联合类型
interface Person1{sayHi();
}
interface Person2{eat();
}
type Person = Person1 | Person2;
type ex = number | string;
// 元组 数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。
type tuple=[1,'good'];
//type 语句中可以使用 typeof 获取实例的类型进行赋值
let tem = new Number();
type B = typeof tem;

(3)还有其他复杂操作,泛型等。

Q2: ts中interface和class的区别? 分别什么时候使用?

A2: interface和class都能定义数据模型。区别:……

区别:interface只是用来声明对象类型或方法,不做实现;而class是类的声明并实现。

  • 简单的数据模型,直接用于展示的,用 interface 进行定义;
  • 比较复杂的数据模型,有字段属性定义以及一些方法,就需要使用 class 。里面还有constructor构造函数。
  • interface 只在编译时用于类型检查,class 编译完成之后实际上就是 javascript 中的原型(prototype)。
    接口可以通过extends继承类,类可以通过implements去实现接口。有个很好的例子帮助理解。

Q3: ts中的泛型有什么了解?

A3: 案例

1. 不用泛型的话,这个函数可能是下面这样:

function identity(arg: number): number {return arg;
}

或者,我们使用any类型来定义函数:

function identity(arg: any): any {return arg;
}

any的情况,可以是任何类型。因此,我们需要一种方法使返回值的类型传入参数的类型是相同的。 这时,就用到了T,类型变量,它是一种特殊的变量,只用于表示类型而不是值。

function identity<T>(arg: T): T {return arg;
}

这样就可以跟踪函数里使用的类型信息

2. 泛型的使用方法有两种:

此处参考官方文档改写。
(1) 尖括号的形式:
let output = identity< string> (“myString”);// type of output will be ‘string’
这里明确的指定了Tstring类型,并做为一个参数传给函数,使用了<>括起来。

(2) 利用了类型推论,即编译器会根据传入的参数自动地帮助我们确定T的类型:
let output = identity(“myString”); // type of output will be ‘string’

本文为原创文章,转载请注明出处。

前端面试题精心整理(一)-TypeScript相关推荐

  1. 前端面试题全面整理-带解析

    本篇文章整理总结这些前端面试题,涵盖面很广,并且面的都是知名大厂,所以这些题还是很有代表性的,都掌握以后一面基础面应该没什么问题,二面也能应付大半,奉上: css相关 1. 万能居中 1.margin ...

  2. 前端面试题全面整理-带解析 涵盖CSS、JS、浏览器、Vue、React、移动web、前端性能、算法、Node...

    来源 | https://www.html.cn/interview/13950.html 本篇文章整理总结了一些前端面试题,涵盖面很广,并且面的都是知名大厂,所以这些题还是很有代表性的,都掌握以后一 ...

  3. web前端面试题完美整理/涵盖html,CSS、JS、浏览器、Vue、React、移动web。

    本篇文章整理总结了一些前端面试题,涵盖面很广,并且面的都是知名大厂,所以这些题还是很有代表性的,都掌握以后一面基础面应该没什么问题,二面也能应付大半,奉上: css相关 更多教程:https://su ...

  4. WEB前端面试题汇总整理01

    1.JS找字符串中出现最多的字符 例如:求字符串'nininihaoa'中出现次数最多字符 var str = "nininihaoa"; var o = {}; for (var ...

  5. 前端面试题答案整理之CSS

    介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? css盒子模型由4部分构成,margin.border.padding.content.标准盒子模型和IE盒子模型的主要区别是在于 ...

  6. 2023高频经典前端面试题(vue2+vue3+typescript+nodejs下篇,含答案)

  7. css、js、浏览器、vue、react、移动web、前端性能、算法、node前端面试题

    前端面试题全面整理-带解析 涵盖(css.js.浏览器.vue.react.移动web.前端性能.算法.node) 前言 上期整理了一些vue面试题,本期整理总结这些前端面试题,涵盖面很广,并且面的都 ...

  8. 大连文思海辉php面试题,文思海辉前端面试题

    下面是一位同学整理的文思海辉前端面试题,整理上来供大家参考. 1.把一个字符串的各项反转顺序. function strReverse(str) { var a = str.split(''); va ...

  9. 前端面试题整理(定期更新)

    前言 因为面试的原因,最近又开始关注前端面试题,浏览过网上很多面试题集合,有很多小伙伴整理的很全面,但是我发现其中有很多技术点在当下已不再流行,而面试题一般都是映射开发中常遇到的一些技能和问题,再结合 ...

最新文章

  1. IDC预测2022年全球智能家居连接设备市场规模将达10亿台!
  2. Navicat 使用sql命令建数据库和表详细过程_2
  3. [javaSE] 标识符大小写
  4. Phone List POJ - 3630(字典树模板题)
  5. linux重启memcache_Linux下的Memcache安装方法
  6. WSUS补丁更新相关命令及参数
  7. 列出本机JCE支持的Provider、消息摘要算法、公钥私钥算法
  8. 重拾C++之虚函数和虚基类以及抽象类
  9. 一个安卓锁机病毒的分析报告
  10. Ipython安装错误集锦
  11. 郑捷《机器学习算法原理与编程实践》学习笔记(第五章 梯度寻优)5.2 Logistic梯度下降法...
  12. 关注虚拟财富“.ME” 域名的投资价值
  13. java 首字母小写_Java中属性名首字母大小写问题
  14. 手把手教你搭建国产嵌入式模拟器SkyEye开发环境
  15. Linux篇19多线程第三部分
  16. 未能加载文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
  17. plink --extract参数采坑问题记录
  18. H323plus的分析
  19. vue 拓扑组件_vue.js生成S型拓扑图
  20. javaScript中createElement案例

热门文章

  1. iOS 类似简单的第三方微博客户端,可进行登录微博浏览相关信息
  2. 想翻倍加薪,网络工程师可考哪些证书用来提升自己?
  3. 软考高项(信息系统项目管理师)一定要过
  4. 第4章Linux实操篇-远程登录到Linux服务器
  5. EasyYapi接入简单实战
  6. sql 中不等于写法
  7. 电脑录屏的视频保存在哪里?您可以这样查看
  8. 设置Go Proxy
  9. 【共读】企业信息安全建设与运维指南(二)
  10. 外籍人士当内资公司法人