Hotteaの新しいバージョンです.現在リリースされる1!



HotTea GitHub repo .

何が熱いですか?
Hotteaは、タイプスクリプトに取って代わる図書館であるはずです.
これはブラウザがネイティブにTSをサポートしていないからです.<script language="typescript" type="application/typescript" src="project.ts"></script ), このライブラリはJavaScript自体が定義していないいくつかの便利な塗りつぶし機能を作成します.
アイデアは、実際に小さく、より野心的な目標として起動しますJSで本当のクラスを作りなさい.ここではoriginal project .
今、私の計画では、私はまた、入力システムを追加しているので、追加を計画してTypedObject (後述する機能)

Hotteaは現在何をサポートしていますか?
悲しいことに、Hotteaは現在、私は最終的に追加するよう努めている実際のクラスをサポートしていません.しかし、それはその具体的な基盤をつくりました.libの多くは(可能性があります)は、このバージョンで定義された基礎に依存することができます.
それで、それは何を持っていますか?
第一にTypedObject s、aに似ている何かHashMap<KT, VT> Javaで.TypedObject sのように動作します.
// Keep in mind, TypedObject returns a proxy,
// as it isn't its own class.
const john = new TypedObject({
    "name": String,
    "age": Number
}, false);

john.name; // null
john.name = "John Egbert";
john.age; // null
john.age = "13"; // TypeError: type String(primitive) does not match type Number
john.age = new Number(13);
john.creator; // ReferenceError: key 'creator' does not exist
john.creator = "Andrew Hussie"; // ReferenceError: key 'creator' does not exist
// Might create a class called AssignmentError just for this message (idk yet).



const dave = new TypedObject({
    "name": String,
    "age": Number
});

dave.name; // null
dave.name = "Dave Strider"; // TypeError: String(primitive) does not match type String
dave.name = new String("Dave Strider");
dave.age = new Number(13);
さて、いくつかのことに気づくでしょう.
つは、すべてのプロパティを開始するnull . これはすべてのプロパティを許可するよう意図的ですnull , なぜなら、undefined はvoid (従って使用できない)とみなされます.
なぜ?ポイントは100 %正しいことではないので、それは私のビジョン(私は20/200ビジョンを持っているが、私はおそらく間違っている)を入力するのが目的です.
そして、特にあなたが特定の結果を期待しているならば、これは本当に役立つと思います.
最後の2つの機能は小さいですが、彼らは役割を果たしており、内でも使用されてTypedObject . isprimitive , and isprimitive.of .isprimitive 値が原始的なものであるかどうかを調べるobject 「オブジェクトのインスタンスも/isprimitive.of 同様の原理で動作します.ただし、値がクラスのプリミティブかどうかをチェックします.
以下に例を示します:

isprimitive("test"); // true
isprimitive(new String("test")); // false
isprimitive(undefined); // true
isprimitive(null); // false
isprimitive({}); // false
isprimitive(function() {}); // false



isprimitive.of(new String("test"), String); // false
isprimitive.of(new String("test"), String, false); // true
isprimitive.of("test", String); // true
isprimitive.of("test", Number); // false
isprimitive.of("test", Number, false); // false


以上です.
私はあなたがあなたが見ているものが好きで、ホットドッグにトライを与えることを検討することを望みます、私はそれの上でかなり働きました、そして、若干のコミュニティフィードバックを見るために感謝します.

読書ありがとう!乾杯!