We have continued work on the TypeScript 1.5 release, and today we are one step closer. You can now try out the TypeScript 1.5 beta as a download for VS 2015 RC, VS 2013, npm, or as source.
The beta represents further progress to the final 1.5 release, with many bugfixes, support for a new metadata API that works with decorators, and updates to bring lib.d.ts up-to-date.
Decorator Metadata
TypeScript 1.5 beta introduces the new metadata API for working with decorators, allowing you to add and read metadata on declarations. You can see how this works in the example below.
First, you need to install the polyfill for the new metadata API. We've made this available on NPM:
> npm install reflect-metadata
Next, you can use this metadata as in the example below:
///
import"reflect-metadata";
function MyClassDecorator(value: string) {
returnfunction (target: Function) {
Reflect.defineMetadata("MyClassDecorator", value, target);
}
}
@MyClassDecorator("my metadata")
class MyClass { }
var myClass = new MyClass();
let value: string = Reflect.getMetadata("MyClassDecorator", myClass.constructor);
console.log(value); // outputs "my metadata"
You can compile this example using:
> tsc myFile.ts --module commonjs --target ES5
We've also added a new commandline option that will allow you to look at the types being passed into your decorators.
> tsc myFile.ts --module commonjs --target ES5 --emitDecoratorMetadata
This is a being developed to help support the metadata needs of rich libraries, like the upcoming Angular 2 release, which can use the metadata to automatically set up dependency injection.
Looking Ahead
Your feedback is important to us. As we close in on completing the 1.5 release, your feedback will be crucial to helping us make sure the new features are at the highest quality they can be. We'd love to hear from you.