type ScriptAttribute = Pick & { attrs: Record; destroyOnError: boolean; }; interface LoadScript { (src: string, options?: Partial): Promise; (options?: Partial): Promise; } /** * 加载 js 文件。 * * 注意:该方法仅适用于浏览器端。 * * @alias module:Browser.loadScript * @since 4.19.0 * @param {string} [src] js 地址。 * @param {Object} [options] script 标签属性。比如 `defer` `onload` `onerror` `id` 等,下面列举部分带有默认值或额外扩展的配置。 * @param {boolean} [options.destroyOnError=true] 如果加载失败或错误,自动删除 dom 中的 script 标签。默认`true` * @param {Object} [options.attrs] 自定义 script 属性,通过 script.setAttribute 设置。 * @param {boolean} [options.async=true] 异步加载。默认`true` * @param {string} [options.type='text/javascript'] 类型。默认`text/javascript` * @return {Promise} 异步返回 script 元素。 * @example * * loadScript('some.js').then(script=>{ * // do something * }) * * loadScript('some.js', { id: 'xxx', async: false, attrs: { foo: 'bar' } }).then(script=>{ * // do something * }) * * // 注入 script * loadScript({ * text: 'console.log("hello world");' * }).then(script=>{ * // do something * }) * */ declare const loadScript: LoadScript; export default loadScript;