2013-10-31 36 views
4

如果您知道TypeScript,您可能知道DefinitelyTyped-Repository。 我想知道是否有類似的東西,但與.NET類文件的功能?因此,例如,如果我喜歡.NET中的Queue-Class,並且想知道是否有人在TypeScript中實現了一個實現,那麼我可以在那裏查看它 - 或者如果我製作了一個實現,我就知道在哪裏存儲它。Common .NET類(即列表<T>) - TypeScript中的實現

正如我猜想大多數TypeScript用戶都與一個.NET背景,我認爲這是有道理的,我希望有人認爲已經相同:)?

乾杯!

+0

我認爲最接近的微軟每一個來創建一個非常淺的通用.NET模式仿真是當他們建立微軟的Ajax庫:http://msdn.microsoft.com/en-us/庫/ bb397536(v = VS.100)的.aspx。更好的事情是考慮是否需要,因爲在基本的JavaScript Array中有很多好處。 – WiredPrairie

回答

5

我有implments一堆這些通用<T>數據結構的一個項目:

- Linked List 
- Dictionary 
- Multi Dictionary 
- Binary Search Tree 
- Stack 
- Queue 
- Set 
- Bag 
- Binary Heap 
- Priority Queue 

來源:https://github.com/basarat/typescript-collections

例如一套:

/// <reference path="collections.ts" /> 
var x = new collections.Set<number>(); 
x.add(123); 
x.add(123); // Duplicates not allowed in a set so will get filtered out 
// The following will give error due to wrong type: 
// x.add("asdf"); // Can only add numbers since that is the type argument. 

var y = new collections.Set<number>(); 
y.add(456); 
x.union(y); 

console.log(x.toString()); // [123,456] 
+1

謝謝!令人敬畏的工作! – Richard

2

我在TypeScript for C# Programmers(免費獲得InfoQ)中編寫了一個通用列表的示例實現。

TypeScript沒有自己的框架類庫,所以除非有計劃讓TypeScript團隊開始開發工作,否則社區需要創建一個。好消息是TypeScript具有所需的所有語言功能,並且使它變爲模塊化應該是微不足道的,因此您只需加載需要使用的FCL的元素(使用模塊加載程序)。例如:

import collections = require('fcl/collections'); 

var customers = new collections.List<Customer>(); 
+0

嗨,史蒂夫。謝謝,真棒工作,期待閱讀。 我知道TypeScript不提供那些開箱即用的東西。但我希望其他一些人已經做了這樣的事情。 – Richard

+0

我會對提供FCL的開源項目感興趣。特別是如果它使用類似C#的東西來獲取結構的想法,那將意味着事情會在非出人意料的地方出現。你在GitHub上嗎? – Fenton

+0

還沒有,但我很樂意與像你這樣的人一起開始這樣一個項目!直到現在,我只在Codeplex上工作。我將在當天晚些時候通過您網站上的聯繫表單與您聯繫。 – Richard