在打字稿中创建一个唯一的关键字

时间:2014-02-05 20:45:53

标签: javascript typescript keyword

目标是创建一个新的关键字'int',它与命名类型'number'具有相同的语义。 我知道我可以通过使用类型'number'来实现相同的行为,但我特别要求在typescript中实现一个新的关键字。我正在采访我校的一个研究项目。

示例用例如下:

function add(x:int, y:int) {
  return x + y; 
}

我一直在努力实现这个确切的用例。我花了几个小时浏览documentation

我已经阅读了类型,类和接口部分,试图找出如何做到这一点;到目前为止没有运气。

我知道我可以通过这样的界面实现类似的东西:

interface int {
   n: number;
}

但是我必须实现这样的功能:

function add(x:int, y:int) {
   return x.n + y.n;
}

我对打字稿是全新的,所以任何方向都非常感谢 - 谢谢。

typescriptlang.org

上的一些基本示例

2 个答案:

答案 0 :(得分:0)

根据http://typescript.codeplex.com/workitem/119,您可以使用

interface int extends number {}

你也可能对feature: int and float types感兴趣。

答案 1 :(得分:0)

根据这个问题,你的教授已经意识到了TypeScript的局限性。

他特意要求你制作一个添加功能。这很重要,因为TypeScript不支持重载运算符(例如+)。

但是,您可以编写一个接受两个int的函数,并使用一元add运算符返回一个int,如下所示。只有函数内部的代码需要理解有奇怪的东西在继续。功能之外的一切都认为存在。

这不会阻止你使用int类型传递浮点数。

interface int extends Number {

}

function add(x: int, y: int) : int {
    return +x + +y;
}

var a: int = 1;
var b: int = 2;

var c = add(a, b);