typescript的强大功能主要在于静态类型和@ decorator
静态类型的自动提示和查错功能就不用多说了
而有decorator的typescript可不止是个es6的马甲
angular2是native typescript 里面绝大多数功能都是用decorator写的
我这也实现过一个用decorator做的动态双向数据绑定、函数-事件关联、Observable Array事件侦听等功能的框架
https://github.com/errisy/bindable我做的序列化标注方案和Remote Procedure Call方案都是用decorator写的
好的decorator应用 可以用极其简单的语法实现各种复杂的功能
typescript另一个强大优势就在于它是一个开源的编译器 只要稍微改改编译器 就可以自动把typescript定义的类型和函数包括注释转译成其他语言
我现在写API完全是typescript的remote procedure call服务,然后利用编译器自动生成web前端typescript client类型和xamarin(android/ios共用)前端的C# client类型 连标注都直接转译过去 开发跨平台API完全不用写文档的
decorator的例子:
@obs.bindable
class Person {
@obs.property
public Name: Name; //if you assign a Name object here, a binding will be automatically set up.
@obs
.bind(()=>Person.prototyope.Name.FirstName) //here defines the binding
.before(()=>Person.prototype.beforeFirstNameChange)
.after(()=>Person.prototype.FirstNameChanged)
.property
public FirstName: string;
@obs.event
public beforeFirstNameChange = () => {
console.log('before first name is changed.');
}
@obs.event
public FirstNameChanged = () => {
console.log('first name is changed.');
}
}
@obs.bindable
class Name{
@obs.property
public Surname: string;
@obs.property
public FirstName: string;
}
【 在 javaboy 的大作中提到: 】
: coffeescript的好处是开发原型快,我现在都不编译直接放<script>里跑的,跑顺了再慢慢整理到库文件里browserify。
: typescript其实是es6的一个马甲,它的背后就是开发chrome的google和开发ie的微软。所以它其实是代表了es发展的方向的。
: typescript的好处是。。。我觉得没啥好处。要勉强说大概就只有ide的自动提示了。这个和python3的type annotation其实是一事儿。
: ...................
--
FROM 110.23.10.*