从没接触过,想要了解下
好像都需要依赖node.js
,用npm install XXX
JavaScript
脚本语言上实现的脚本语言?JavaScript
,那这样做有什么优势吗?CoffeeScript 官网示例代码
# Assignment:
number = 42
opposite = true
# Conditions:
number = -42 if opposite
# Functions:
square = (x) -> x * x
# Arrays:
list = [1, 2, 3, 4, 5]
# Objects:
math =
root: Math.sqrt
square: square
cube: (x) -> x * square x
# Splats:
race = (winner, runners...) ->
print winner, runners
# Existence:
alert "I knew it!" if elvis?
# Array comprehensions:
cubes = (math.cube num for num in list)
TypeScript 官网示例代码
class Student {
fullname : string;
constructor(public firstname, public middleinitial, public lastname) {
this.fullname = firstname + " " + middleinitial + " " + lastname;
}
}
interface Person {
firstname: string;
lastname: string;
}
function greeter(person : Person) {
return "Hello, " + person.firstname + " " + person.lastname;
}
var user = new Student("Jane", "M.", "User");
document.body.innerHTML = greeter(user);
1
shyling 2015-11-29 16:30:06 +08:00
统一语法?
|
2
emric 2015-11-29 16:57:58 +08:00
写的爽。
|
3
taoche 2015-11-29 17:00:24 +08:00
语法糖。。
typeScript 有类型检查。 coffee 更多的是写法上的 它们都在功能上实现了拓展,比如 coffee 加入了 Class 的概念 还有很多啦。 |
4
breeswish 2015-11-29 17:00:49 +08:00
代码生成器 :-)
|
5
ljcarsenal 2015-11-29 17:01:08 +08:00 via Android 1
ts 给 js 加了类型,接口等一些数据结构,以及实现了模块化,类,继承等,使其方便大工程的开发(我没开发过大工程,没体会) coffee 给我的感觉就像 Python ruby.两者可以理解为是 js 的语法糖,提高开发效率
|
6
Hyperion 2015-11-29 17:05:52 +08:00
方言, 解决一些 JavaScript 极端蛋疼的地方, 比如_this 啦什么的.
的确方便很多, 但也有很多奇怪的地方, 比如学 CoffeeScript 时候, 三元运算被炸成另一个写法, 刚上手很蛋疼. |
7
tennix 2015-11-29 17:26:16 +08:00
|
8
seki 2015-11-29 17:26:40 +08:00
个人理解,和原生 js 比起来优势是可以避免一些脏活,避免一些坑,避免一堆堆的括号和大括号的嵌套
|
9
jiyinyiyong 2015-11-29 17:38:52 +08:00 1
JavaScript 是一门到处都能运行的语言,
浏览器可以, 服务器可以, 手机上也可以, 某些嵌入式的设备也可以, 特别是浏览器, 每个人电脑上都装了, 如果东西是 JavaScript 写的, 用户访问就太方便了 于是, 大家都想用 JavaScript 写 但是 JavaScript 因为装了太多地方, 版本也各种不一致 某些地方装了很低版本的 XP 或者 IE, 楼主应该知道 一个坏处就是, JavaScript 不能随便升级, 升级了浏览器没升级, 跪了怎么办 结果就是这么多年过去了, JavaScript 实际上跟十多年前差别并不大 或者说虽然已经很大了, 但是作为这么多人用的语言, 功能和工具远远不够强大 于是 CoffeeScript 那个时代的人想到了个办法, 编译到 JavaScript 现在么, 大公司也觉得编译是个好办法, 就把现成的语言改改, 编译过去 于是就有了 TypeScript, 简单说, 就是省事嘛 往坏了说, 微软是真的想搞个好用的浏览器编程语言, 没办法, 只能编译 JavaScript Node.js 环境跟浏览器环境类似. 当然, 情况会好一点 |
10
1stlulu 2015-11-29 18:02:23 +08:00
TypeScript is a superset of JavaScript, strong typed.
|
11
colatin 2015-11-29 18:09:30 +08:00
vscode 下用 typescript 写 node 程序,就一个字,爽
|
12
learnshare 2015-11-29 18:11:19 +08:00
TypeScript 倾向于在 JavaScript 的基础上重新实现 ECMAScript ;
CoffeeScript 只是一个用于简化 JavaScript 书写的工具。 |
13
ahiyang 2015-11-29 20:16:55 +08:00 via iPhone
ts 静态强类型 coffee 语法糖
|
14
g00001 2015-11-29 20:42:57 +08:00
其实调用微软 JS 解释器就可以编译 typescript ,不过要动点手脚, aardio 里就可以这样搞:
import typeScript.compiler; typeScript.filesystem.fileData["test.ts"] = /** TS 代码 **/ //虚拟文件系统 typeScript.filesystem.writeFile = function(fileName,data,writeByteOrderMark){ }; typeScript.compiler.execute("test.ts") |
15
haozhang 2015-12-03 11:46:04 +08:00
coffeescript 是给 ruby 或者 python 程序员写 js 用的, typescript 是给 java 或者 c#或者 c++程序员写 js 用的。我这么觉得。
|
16
meanderer 2016-01-14 14:06:15 +08:00
typescript 有一个设计目标是作为 javascript 的超集,也就是说你写纯 javascript 也是可以的,只是你可以选择性添加类型信息。类型信息在开发大些的项目以及多人协作时会有用处,而且也可以看做是 documentation 。这么设计的坏处在于某些 javascript 的坑就免不了了,因为要兼容嘛。
coffeescript 则并不以兼容 javascript 为目标,所以语法更简洁,也避免了不少坑。 |