TypeScript 2.4
Şimdi dize sıralamaları vardır, böylece kodunuz sadece çalışır:
enum E {
hello = "hello",
world = "world"
};
🌹
TypeScript 1.8
TypeScript 1.8'den beri, adlandırılmış dize değerleri için güvenilir ve güvenli bir deneyim sağlamak için dize değişmez türlerini kullanabilirsiniz (bu, kısmen numaralandırmaların ne için kullanıldığıdır).
type Options = "hello" | "world";
var foo: Options;
foo = "hello"; // Okay
foo = "asdf"; // Error!
Daha fazlası: https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types
Miras yardımı
TypeScript'teki numaralandırmalar sayı tabanlıdır.
Yine de statik üyeleri olan bir sınıfı kullanabilirsiniz:
class E
{
static hello = "hello";
static world = "world";
}
Siz de sade olabilirsiniz:
var E = {
hello: "hello",
world: "world"
}
Güncelleme:var test:E = E.hello; Aşağıdaki
gibi bir şey yapabilme gereksinimine dayanarak bunu karşılar:
class E
{
// boilerplate
constructor(public value:string){
}
toString(){
return this.value;
}
// values
static hello = new E("hello");
static world = new E("world");
}
// Sample usage:
var first:E = E.hello;
var second:E = E.world;
var third:E = E.hello;
console.log("First value is: "+ first);
console.log(first===third);