TypeScript的优点

时间:2013-04-20 23:25:26

标签: javascript typescript

我刚刚开始阅读Typescript的基础知识,谁能告诉我使用Typescript优于Javascript或jquery的优势?一些例子会有所帮助。

3 个答案:

答案 0 :(得分:14)

我在一些小型爱好项目中使用过打字稿,我确信它是完美的Javascript替代品。我最喜欢的功能是:

  • 声明文件。使用声明文件,您可以向javascript库添加类型信息。这些结构信息将为您在VisualStudio中提供出色的智能感知支持。

  • “标准”OOP。如果你来自C#或Java背景,你可能甚至不需要打字稿教程。它只是有效。你有类,接口,访问修饰符,扩展机制......

  • 内置对模块的支持。 Typescript有一个稍微混乱的模块系统。您可以将代码拆分为几个.ts文件,只需附加它们,但您也可以创建不同的模块。

最后:语法。有时它是影响最大的小事。对我来说,打字稿的语法感觉非常完美。我举几个例子:

使用“:”键入注释并键入推理

var a = 5; //infers that a has the type number
var canvas : HTMLCanvasElement = document.getElementById("canvas"); 
// automatically casts to the canvas type. Intellisense will now suggest all the canvas specific methods

作为列表,堆栈,...的数组

var array= []; //dynamic type
array.push(1);
array[1]=2;
array.pop();

var array2 : number[] = []; //typed array
array[0]=2;
array[1]="hello"  //compile time error. You've got to love the type system. Finally you can trust your collections

使用箭头语法作为lambdas的函数:

var array=[];
array.push(1);
//...
array.forEach((num)->{alert(num);});
//for single statement functions you can write
array.forEach((num)->alert(num));

现在键入的数组和lambdas合并:

var array: number[]=[];
array.push(1);
//...

//let's assume you want to work with the data in the array. You've got to filter it and process it. Lambdas will come in handy, as well as the type inference
array.filter((num)->num>3).map((num)->num*2).forEach((num)->alert(num));

// the first lambda with the comparison is fully type safe. The compiler knows the type of the array. Therefore it can infer the type of the parameter num and will check if num can be compared to a number

我非常喜欢使用打字稿。它将显着提高您的生产力。而且还有更多要发生的事情: http://typescript.codeplex.com/wikipage?title=Roadmap https://github.com/Microsoft/TypeScript/wiki/Roadmap

0.9版本将提供泛型,对于1.x版本,他们计划实现异步/等待调用。

答案 1 :(得分:3)

以下是TypeScript上的视频集合:

http://channel9.msdn.com/search?term=typescript

基本上它为Javascript添加了可选的静态类型,因此静态类型的所有优点都带来了Javascript。

答案 2 :(得分:3)

JQuery和Typescript不是互斥的,因为在Typescript中使用JQuery是相当常见的。使用Typescript而不是Javascript的主要好处是增加了类型检查。这允许您创建接口并按合同开发。在较大的项目中,进行类型检查可能是有益的,但这是主观偏好。