当前位置:首页>开发>正文

如何评价TypeScript接口的扩展,自动混合的特性 TypeScript 和 JavaScript 的区别

2023-04-24 15:45:02 互联网 未知 开发

 如何评价TypeScript接口的扩展,自动混合的特性 TypeScript 和 JavaScript 的区别

如何评价TypeScript接口的扩展,自动混合的特性

用了几个月的 TS 写前端。
TS 在 1.4 前是残废。1.4 引入的 union types 和 type alias 算是非常重要的。没有这两个特性,TypeScript 能提供的编译期类型检查甚至还不如 JSDoc 的 type annotation 来得好用。尤其是没有 type alias ,定义一个 callback 都要用 interface,实在蛋疼。
后来用 TS 写一个新的项目,把写的 TS 编译成 JS 放到线上后,其他人纷纷表示不会 TS,修 bug 和加特性时直接在编译出的 JS 的基础上改了。后来把变更一点点加回 TS 源文件的时候,不得不 diff 一下 JS 文件的变化,一行一行地在 TS 里对应着改,实在令人唏嘘。
其实对来说 TypeScript 令人不悦的一点是,官方明确指出,TS 不会提供任何 run-time type information 有关的特性。然而 TS 的工作场合就常常涉及把服务器返回的 JSON 转成 JS objects、把 cookie 转成 JS objects 之类的事情,没有 run-time type information 的支持,实在是最大最大的硬伤。运行时无类型信息这一点更是使得很多东西不得不在 run-time 手动去 cast,这使得编译期带来的类型安全保障荡然无存。这几点可参见评论里补充的例子。
如果有 TypeScript 的超集或是扩展能够提供 run-time type information ,那想必是非常开心的。

TypeScript 和 JavaScript 的区别

TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集。JavaScript 和 TypeScript 的主要差异:
1、TypeScript 可以使用 JavaScript 中的所有代码和编码概念,TypeScript 是为了使 JavaScript 的开发变得更加容易而创建的。例如,TypeScript 使用类型和接口等概念来描述正在使用的数据,这使开发人员能够快速检测错误并调试应用程序
2、TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行扩展。
3、JavaScript 代码可以在无需任何修改的情况下与 TypeScript 一同工作,同时可以使用编译器将 TypeScript 代码转换为 JavaScript。
4、TypeScript 通过类型注解提供编译时的静态类型检查。

5、TypeScript 中的数据要求带有明确的类型,JavaScript不要求。
6、TypeScript 为函数提供了缺省参数值。
7、TypeScript 引入了 JavaScript 中没有的“类”概念。
8、TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。

typescript 装饰器是什么东西

随着TypeScript和ES6里引入了类,在一些场景下我们需要额外的特性来支持标注或修改类及其成员。 装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。 Javascript里的装饰器目前处在 建议征集的第一阶段,但在TypeScript里已做为一项实验性特性予以支持。装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上。 装饰器使用@expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。

typescript是什么语言

TypeScript是一个应用程序级的JavaScript开发语言。
TypeScript是JavaScript的超集,可以编译成纯JavaScript。
TypeScript跨浏览器、跨操作系统、跨主机,开源。
Starts from JavaScript, Ends with JavaScript
TypeScript遵循JavaScript的语法和语义,方便了无数的JavaScript开发者。
TypeScript可以重用现有的JavaScript代码,调用流行的JavaScript库。
TypeScript可以编译成简洁、简单的JavaScript代码,在任意浏览器、Node.js或任何兼容ES3的环境上运行。

如何评价 TypeScript

从 Coffee 的使用之广泛来看,TypeScript 必然也是一个很有意义的项目。
与 CoffeeScript 相比,它们在「解决 JavaScript 糟粕」、「提高可读性」等目标上相似,并且都是以预编译的方式工作。不过,TypeScript 有一些先天的优势:

高度兼容原生脚本语法(甚至可以混着写)
对语法的破坏性较少,即使没接触过的人,也能很快上手,初次阅读也没有什么障碍
如名字所述,它讲究基于接口的强类型,因此非常适合原本的服务器开发者使用
提供了大量编辑器的集成,有现有大量库的 .ts 元文件可用
这是一个好玩而有用的工具,由于它是对脚本的预创建过程,并不给项目造成什么大的改动(除了一些新增的 .ts 文件)。
不过,要在项目中大量推广,还需要有项目成员的配合使用(在脚本文件的相互引用时,最好至少有 .ts 元文件),这可能存在一定的阻力。
在不少开源项目中,已经见到很多人在应用 TypeScript 了。

typescript怎么定义全局的函数

随着各种现代浏览器、以及node对ES6的支持,已经有越来越多的ES6特性可以在程序中使用,她们给开发过程带来的便利不言而喻,举个小例子,我想从一个数组里找一些符合条件的数据,放入另一个数组内,过去我们这么写:
var list = [],
i
for (i = 0 i < originalList.length i ) {
var item = originalList[i]
if (item.gender === male) {
list.push(item)
}
}
console.log(list) //符合条件的新数组
如果改用数组的高阶函数,再配合ES6的arrow function,代码可以简洁如斯:
var list = originalList.filter(item => item.gender === male)
console.log(list) //符合条件的新数组

最新文章