Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传单图书馆的打字是什么意思?_Javascript_Angular_Typescript_Leaflet - Fatal编程技术网

Javascript 传单图书馆的打字是什么意思?

Javascript 传单图书馆的打字是什么意思?,javascript,angular,typescript,leaflet,Javascript,Angular,Typescript,Leaflet,我有一个关于你的问题。index.d.ts中有TileLayer的键入定义: class TileLayer extends GridLayer { constructor(urlTemplate: string, options?: TileLayerOptions); setUrl(url: string, noRedraw?: boolean): this; options: TileLayerOptions; } 但是中的实现类除了setUrl之外还有许多其他

我有一个关于你的问题。index.d.ts中有TileLayer的键入定义:

class TileLayer extends GridLayer {
    constructor(urlTemplate: string, options?: TileLayerOptions);
    setUrl(url: string, noRedraw?: boolean): this;

    options: TileLayerOptions;
}
但是中的实现类除了setUrl之外还有许多其他方法。这将如何帮助Angular 4开发者导入TileLayer,而不必在index.html中加载整个传单.js

同样,在实现类中,在L namespace下定义了slaple.js中的TileLayer。

声明文件(
*.d.ts
)允许您在typescript中使用第三方库,因为javascript是动态键入的,为了实现“编译时类型检查”,typescript需要知道每个符号的类型,这些声明文件允许typescript这样做

例如,typescript本身附带此声明文件,其中包含
document.querySelector()
的声明,此函数返回一个
元素
,在纯javascript中,您可以毫无问题地执行此
document.querySelector(…).style
,但在typescript中,它会抱怨:,接口
元素
没有名为
样式
的属性,因此您需要将其强制转换为
HTMLElement
,然后typescript将很高兴。这是因为
.d.ts
声明文件(
*.d.ts
)允许您在typescript中使用第三方库,因为javascript是动态键入的,为了实现“编译时类型检查”,typescript需要知道每个符号的类型,这些声明文件允许typescript这样做


例如,typescript本身附带此声明文件,其中包含
document.querySelector()
的声明,此函数返回一个
元素
,在纯javascript中,您可以毫无问题地执行此
document.querySelector(…).style
,但在typescript中,它会抱怨:,接口
元素
没有名为
样式
的属性,因此您需要将其强制转换为
HTMLElement
,然后typescript将很高兴。它之所以能够做到这一点,是因为
.d.ts
声明文件其他方法的类型/签名声明是通过继承来实现的。这就是诀窍:

class TileLayer扩展了GridLayer{

此外,如果您使用的是像RequireJS这样的脚本加载器,甚至是像Webpack这样的包绑定器,那么传单组件不一定会在全局“L”中,因为它将使用注入加载。传单提供以UMD模式包装的脚本,该模式检查所有类型的加载器(amd、commonjs、commonjs2等)在将其导出到“L”全局模式之前

关于您在代码中加载整个手册的问题。一些插件可以主动检查您的最终捆绑包,并删除未使用的代码片段,如函数/方法调用。Webpack也可以很好地做到这一点。其他选项应该是尝试加载分离的组件(它们是依赖项)从源代码来看,但我不建议这样做,因为与作为核心js的库不同,它们没有设计以这种方式加载的传单


提示:如果您使用的是TypeScript,您不应该在index.html中包含依赖项,让babel/webpack/systemjs为您完成;)

其他方法的类型/签名声明都是通过继承来实现的。这样做的诀窍是:

class TileLayer扩展了GridLayer{

此外,如果您使用的是像RequireJS这样的脚本加载器,甚至是像Webpack这样的包绑定器,那么传单组件不一定会在全局“L”中,因为它将使用注入加载。传单提供以UMD模式包装的脚本,该模式检查所有类型的加载器(amd、commonjs、commonjs2等)在将其导出到“L”全局模式之前

关于您在代码中加载整个手册的问题。一些插件可以主动检查您的最终捆绑包,并删除未使用的代码片段,如函数/方法调用。Webpack也可以很好地做到这一点。其他选项应该是尝试加载分离的组件(它们是依赖项)从源代码来看,但我不建议这样做,因为与作为核心js的库不同,它们没有设计以这种方式加载的传单


提示:如果您使用的是TypeScript,您不应该在index.html中包含依赖项,让babel/webpack/systemjs为您完成;)

这并不能回答我的问题。这并不能回答我的问题。