使用http://playground-leaflet.rhcloud.com/或任何其他类似 jsfiddle 的站点。
我正在尝试在应用程序中使用最新版本的传单 1.02。 如果我用纯 JavaScript 构建应用程序,Leaflet 1.0.2 就没有问题。 在 Typescript 应用程序中使用传单 1.0.2 中断: this.callInitHooks 不是一个函数,只要我向地图添加了像 GeoSearch 这样的控制插件。
传单 1.0.2 ES6 / Typescript 兼容吗?
不应该有什么特别阻止你使用带有 TypeScript 的 Leaflet(有它的定义:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts)和 ES6。
如果您认为 Leaflet 有任何特定问题阻止了这一点,请随时在http://playground-leaflet.rhcloud.com/ 、jsfiddle 或类似网站上提供示例。
你是绝对正确的。 我在我的应用程序中通过 Typescript 使用 Leaflet 也没有问题。 它只是不起作用的插件。
运行插件找不到 kookinit()。
一月 3 号 2017 年,om 14:57 heeft Per Liedman [email protected] het volgende geschreven:
不应该有什么特别阻止你使用带有 TypeScript 的 Leaflet(有它的定义: https: //github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts https://github.com/DefinitelyTyped/DefinitelyTyped/DefinitelyTyped/
如果您认为 Leaflet 有任何特定问题阻止了这一点,请随意在http://playground-leaflet.rhcloud.com/ http://playground-leaflet.rhcloud.com/、jsfiddle或类似网站上提供示例。
—
您收到此消息是因为您创作了该线程。
直接回复本邮件,在 GitHub 上查看https://github.com/Leaflet/Leaflet/issues/5224#issuecomment-270119252 ,或将线程静音https://github.com/notifications/unsubscribe-auth/AAZlpz5axhLON3LzzdbHZIgG4DYx4- Gnks5rOlPMgaJpZM4LXtMC 。
我认为您应该对有问题的插件提出问题,不幸的是,Leaflet 团队对其他作者的插件的了解有限,而且我们的时间和资源阻止我们调试 Leaflet 核心之外的问题。
我不知道这是否有帮助,但我遇到了同样的问题。 但这是我的错误。 我打电话给 L.TilelLayer 而不是 L.tileLayer() ,也许将其添加到文档中作为常见错误:-( 另请参见https://github.com/mWater/offline-leaflet-map/issues/18
以防万一有人有同样的错误,而不是
var positron = L.TileLayer(...)
你应该写:
var positron = new L.TileLayer(...)
您的操场链接中缺少新关键字@pcrombach
只是为了明确问题是什么 - Leaflet 使用类,并且还有用于创建新对象的工厂方法。 这些类是大写的,需要用new
调用,而工厂方法是小写的,不应该。 文档使用了工厂方法,所以我不能说是否支持直接实例化类实例,尽管工厂只是简单地调用new
。 因此,以下内容是等效的,但仅记录了第一个内容。
// Small t, calling factory method
const positron = L.tileLayer(...);
// Capital T, instantiating a new instance directly
const positron = new L.TileLayer(...);
反应中也存在同样的问题
最有用的评论
以防万一有人有同样的错误,而不是
var positron = L.TileLayer(...)
你应该写:
var positron = new L.TileLayer(...)
您的操场链接中缺少新关键字@pcrombach