我对我在google地图javascript库中看到的一些javascript代码有疑问。
constructor (sw?: LatLng, ne?: LatLng);
以上是一个名为latlng的类。我不知道这里发生了什么。为什么使用'?:',它对于传递给函数的参数意味着什么。
lat(): number;
以上是另一个对象。我在想这告诉我这个对象的函数返回一个数字,但我不确定是不是这样,因为我认为你不能在javascript中指定返回类型。
export interface MapOptions {
backgroundColor?: string;
center?: LatLng;
disableDefaultUI?: boolean;
disableDoubleClickZoom?: boolean;
draggable?: boolean;
draggableCursor?: string;
draggingCursor?: string;
heading?: number;
...etc.
}
这一切到底是什么?这甚至是合法的javascript。 “?:”运算符(或者你想称之为什么)在这里做什么?
我是一个经验丰富的c ++和类型定义是我的思想在每个地方看到的。我正在尝试调整到没有类型的javascript变量,但这里只是有点令人困惑...冒号右侧的所有内容只是将类型分配给左侧的属性?或者这里使用比较运算符来比较某些东西?
更新: 我想这毕竟不是javascript。不明白为什么下来投票支持打字稿。这很多都是一个学习环境哈哈!
答案 0 :(得分:3)
该代码为TypeScript
,而不是JavaScript。
?
表示参数(或接口成员)是可选的。
:number
表示返回类型为number
。
有关基本类型注释的更多信息:http://basarat.gitbooks.io/typescript/content/docs/types/type-system.html