Javascript 传单图书馆的打字是什么意思?
我有一个关于你的问题。index.d.ts中有TileLayer的键入定义: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之外还有许多其他
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为您完成;)这并不能回答我的问题。这并不能回答我的问题。