?:在javascript对象属性中

时间:2015-04-01 20:38:42

标签: google-maps typescript

我对我在google地图javascript库中看到的一些javascript代码有疑问。

1

constructor (sw?: LatLng, ne?: LatLng);

以上是一个名为latlng的类。我不知道这里发生了什么。为什么使用'?:',它对于传递给函数的参数意味着什么。

2

lat(): number;

以上是另一个对象。我在想这告诉我这个对象的函数返回一个数字,但我不确定是不是这样,因为我认为你不能在javascript中指定返回类型。

3

export interface MapOptions {
        backgroundColor?: string;
        center?: LatLng;
        disableDefaultUI?: boolean;
        disableDoubleClickZoom?: boolean;
        draggable?: boolean;
        draggableCursor?: string;
        draggingCursor?: string;
        heading?: number;
        ...etc.
        }

这一切到底是什么?这甚至是合法的javascript。 “?:”运算符(或者你想称之为什么)在这里做什么?

我是一个经验丰富的c ++和类型定义是我的思想在每个地方看到的。我正在尝试调整到没有类型的javascript变量,但这里只是有点令人困惑...冒号右侧的所有内容只是将类型分配给左侧的属性?或者这里使用比较运算符来比较某些东西?

更新: 我想这毕竟不是javascript。不明白为什么下来投票支持打字稿。这很多都是一个学习环境哈哈!

1 个答案:

答案 0 :(得分:3)

该代码为TypeScript,而不是JavaScript。

?表示参数(或接口成员)是可选的。

:number表示返回类型为number

有关基本类型注释的更多信息:http://basarat.gitbooks.io/typescript/content/docs/types/type-system.html