一 我要涨知识 —— TypeScript 常见面试题( 二 )

变量str被推断为字符串类型 , 这种推断发生在初始化变量和成员 , 设置默认参数值和决定函数返回值时
如果由于缺乏声明而不能推断出类型 , 那么它的类型被视作默认的动态any类型
2.5、接口接口简单来说就是用来描述对象的类型 数据的类型有number、null、string等数据格式 , 对象的类型就是用接口来描述的
interface Person {name: string;age: number;}let tom: Person = {name: 'Tom',age: 25};2.6、TS 与 JS 的区别

  • TypeScript 是 JavaScript 的超集 , 扩展了 JavaScript 的语法
  • TypeScript 可处理已有的 JavaScript 代码 , 并只对其中的 TypeScript 代码进行编译
  • TypeScript 文件的后缀名 .ts (.ts , .tsx , .dts) , JavaScript 文件是 .js
  • 在编写 TypeScript 的文件的时候就会自动编译成 js 文件
更多的区别如下图所示:
一 我要涨知识 —— TypeScript 常见面试题

文章插图
3、为什么推荐使用 TypeScript ?TypeScript是微软公司开发和维护的一种面向对象的编程语言 。它是JavaScript的超集 , 包含其所有元素 。
强类型和弱类型、静态类型和动态类型是两组不同的概念 。
类型强弱是针对类型转换是否显示来区分 , 静态和动态类型是针对类型检查的时机来区分 。
TS对JS的改进主要是静态类型检查 , 静态类型检查有何意义?标准答案是“静态类型更有利于构建大型应用” 。
推荐使用TypeScript的原因有:
  • TypeScript简化了JavaScript代码 , 使其更易于阅读和调试 。
  • TypeScript是开源的 。
  • TypeScript为JavaScript ide和实践(如静态检查)提供了高效的开发工具 。
  • TypeScript使代码更易于阅读和理解 。
  • 使用TypeScript , 我们可以大大改进普通的JavaScript 。
  • TypeScript为我们提供了ES6(ECMAScript 6)的所有优点 , 以及更高的生产率 。
  • TypeScript通过对代码进行类型检查 , 可以帮助我们避免在编写JavaScript时经常遇到的令人痛苦的错误 。
  • 强大的类型系统 , 包括泛型 。
  • TypeScript只不过是带有一些附加功能的JavaScript 。
  • TypeScript代码可以按照ES5和ES6标准编译 , 以支持最新的浏览器 。
  • 与ECMAScript对齐以实现兼容性 。
  • 以JavaScript开始和结束 。
  • 支持静态类型 。
  • TypeScript将节省开发人员的时间 。
  • TypeScript是ES3、ES5和ES6的超集 。
4、TypeScript 的内置数据类型有哪些?数字类型:用于表示数字类型的值 。TypeScript 中的所有数字都存储为浮点值 。
let identifier: number = value;布尔类型:一个逻辑二进制开关 , 包含true或false
let identifier: string = " ";Null 类型: Null 表示值未定义的变量 。
let identifier: bool = Boolean value;未定义类型:一个未定义的字面量 , 它是所有变量的起点 。
let num: number = null;void 类型:分配给没有返回值的方法的类型 。
let unusable: void = undefined;5、TypeScript 中的变量以及如何声明?变量是内存中用于存储值的命名空间 。
在 TypeScript 中声明变量的类型语法在变量名称后包括一个冒号(:) , 后跟其类型 。与 JavaScript 相似 , 我们使用var关键字声明变量 。
在Typescript中声明变量时 , 必须遵循某些规则: