diff --git a/src/compiler/compile/render_dom/Renderer.ts b/src/compiler/compile/render_dom/Renderer.ts index 179fc0c956..c00ef95586 100644 --- a/src/compiler/compile/render_dom/Renderer.ts +++ b/src/compiler/compile/render_dom/Renderer.ts @@ -168,7 +168,7 @@ export default class Renderer { return member; } - invalidate(name: string, value?, main_execution_context: boolean = false) { + invalidate(name: string, value?: unknown, main_execution_context: boolean = false) { return renderer_invalidate(this, name, value, main_execution_context); } diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index c36ca2acd4..3055715b4c 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -83,7 +83,7 @@ export default function dom( } const uses_slots = component.var_lookup.has('$$slots'); - let compute_slots; + let compute_slots: Node[] | undefined; if (uses_slots) { compute_slots = b` const $$slots = @compute_slots(#slots); @@ -396,7 +396,7 @@ export default function dom( if (has_definition) { const reactive_declarations: (Node | Node[]) = []; - const fixed_reactive_declarations = []; // not really 'reactive' but whatever + const fixed_reactive_declarations: Node[] = []; // not really 'reactive' but whatever component.reactive_declarations.forEach(d => { const dependencies = Array.from(d.dependencies); @@ -441,7 +441,7 @@ export default function dom( return b`let ${$name};`; }); - let unknown_props_check; + let unknown_props_check: Node[] | undefined; if (component.compile_options.dev && !(uses_props || uses_rest)) { unknown_props_check = b` const writable_props = [${writable_props.map(prop => x`'${prop.export_name}'`)}]; diff --git a/src/compiler/compile/render_dom/invalidate.ts b/src/compiler/compile/render_dom/invalidate.ts index 7eeb34a894..ffc5b6b42e 100644 --- a/src/compiler/compile/render_dom/invalidate.ts +++ b/src/compiler/compile/render_dom/invalidate.ts @@ -80,7 +80,7 @@ export function invalidate(renderer: Renderer, scope: Scope, node: Node, names: return invalidate; } -export function renderer_invalidate(renderer: Renderer, name: string, value?, main_execution_context: boolean = false) { +export function renderer_invalidate(renderer: Renderer, name: string, value?: unknown, main_execution_context: boolean = false) { const variable = renderer.component.var_lookup.get(name); if (variable && (variable.subscribable && (variable.reassigned || variable.export_name))) { diff --git a/src/compiler/compile/render_dom/wrappers/EachBlock.ts b/src/compiler/compile/render_dom/wrappers/EachBlock.ts index d4648954ca..0c49c38028 100644 --- a/src/compiler/compile/render_dom/wrappers/EachBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/EachBlock.ts @@ -582,7 +582,7 @@ export default class EachBlockWrapper extends Wrapper { const start = this.block.has_update_method ? 0 : '#old_length'; - let remove_old_blocks; + let remove_old_blocks: Node[]; if (this.block.has_outros) { const out = block.get_unique_name('out'); diff --git a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts index fb604f564e..81a1898331 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts @@ -130,7 +130,7 @@ export default class AttributeWrapper extends BaseAttributeWrapper { const dependencies = this.get_dependencies(); const value = this.get_value(block); - let updater; + let updater: Node[]; const init = this.get_init(block, value); if (is_legacy_input_type) { @@ -258,7 +258,7 @@ export default class AttributeWrapper extends BaseAttributeWrapper { return metadata; } - get_value(block) { + get_value(block: Block) { if (this.node.is_true) { if (this.metadata && boolean_attributes.has(this.metadata.property_name.toLowerCase())) { return x`true`; @@ -287,7 +287,7 @@ export default class AttributeWrapper extends BaseAttributeWrapper { return value; } - get_class_name_text(block) { + get_class_name_text(block: Block) { const scoped_css = this.node.chunks.some((chunk: Text) => chunk.synthetic); const rendered = this.render_chunks(block); diff --git a/src/compiler/compile/render_dom/wrappers/Element/Binding.ts b/src/compiler/compile/render_dom/wrappers/Element/Binding.ts index bc218a510b..9e2ec85f0f 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/Binding.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/Binding.ts @@ -299,8 +299,8 @@ function get_binding_group(renderer: Renderer, value: Binding, block: Block) { for (const dep of contextual_dependencies) { const context = block.bindings.get(dep); - let key; - let name; + let key: string; + let name: string; if (context) { key = context.object.name; name = context.property.name; @@ -364,7 +364,7 @@ function get_event_handler( const contextual_dependencies = new Set(binding.node.expression.contextual_dependencies); const context = block.bindings.get(name); - let set_store; + let set_store: Node[] | undefined; if (context) { const { object, property, store, snippet } = context; diff --git a/src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts b/src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts index fc65a9aa5e..b0ed4a73d6 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts @@ -26,7 +26,7 @@ export default class EventHandlerWrapper { } } - get_snippet(block) { + get_snippet(block: Block) { const snippet = this.node.expression ? this.node.expression.manipulate(block) : block.renderer.reference(this.node.handler_name); if (this.node.reassigned) { diff --git a/src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts b/src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts index 7044d5d7b3..0ff7c27e4b 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts @@ -6,7 +6,7 @@ svg_attributes.forEach(name => { svg_attribute_lookup.set(name.toLowerCase(), name); }); -export default function fix_attribute_casing(name) { +export default function fix_attribute_casing(name: string) { name = name.toLowerCase(); return svg_attribute_lookup.get(name) || name; } diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index 01f03b5589..97984748c3 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -19,7 +19,7 @@ import { add_event_handler } from '../shared/add_event_handlers'; import { add_action } from '../shared/add_actions'; import bind_this from '../shared/bind_this'; import { is_head } from '../shared/is_head'; -import { Identifier, ExpressionStatement, CallExpression } from 'estree'; +import { Identifier, ExpressionStatement, CallExpression, Node } from 'estree'; import EventHandler from './EventHandler'; import { extract_names } from 'periscopic'; import Action from '../../../nodes/Action'; @@ -534,7 +534,7 @@ export default class ElementWrapper extends Wrapper { .filter((attr) => !(attr instanceof SpreadAttributeWrapper) && !attr.property_name) .map((attr) => p`${(attr as StyleAttributeWrapper | AttributeWrapper).name}: true`); - let reference; + let reference: string | ReturnType; if (this.node.tag_expr.node.type === 'Literal') { if (this.node.namespace) { reference = `"${this.node.tag_expr.node.value}"`; @@ -634,7 +634,7 @@ export default class ElementWrapper extends Wrapper { // media bindings — awkward special case. The native timeupdate events // fire too infrequently, so we need to take matters into our // own hands - let animation_frame; + let animation_frame: Identifier | undefined; if (binding_group.events[0] === 'timeupdate') { animation_frame = block.get_unique_name(`${this.var.name}_animationframe`); block.add_variable(animation_frame); @@ -874,9 +874,7 @@ export default class ElementWrapper extends Wrapper { } } - add_transitions( - block: Block - ) { + add_transitions(block: Block) { const { intro, outro } = this.node; if (!intro && !outro) return; @@ -933,7 +931,7 @@ export default class ElementWrapper extends Wrapper { const fn = this.renderer.reference(intro.name); - let intro_block; + let intro_block: Node[]; if (outro) { intro_block = b` @@ -1032,7 +1030,7 @@ export default class ElementWrapper extends Wrapper { ${outro && b`@add_transform(${this.var}, ${rect});`} `); - let params; + let params: Node | ReturnType; if (this.node.animation.expression) { params = this.node.animation.expression.manipulate(block); @@ -1060,8 +1058,8 @@ export default class ElementWrapper extends Wrapper { const has_spread = this.node.attributes.some(attr => attr.is_spread); this.node.classes.forEach(class_directive => { const { expression, name } = class_directive; - let snippet; - let dependencies; + let snippet: Node | string; + let dependencies: Set; if (expression) { snippet = expression.manipulate(block); dependencies = expression.dependencies; @@ -1105,7 +1103,7 @@ export default class ElementWrapper extends Wrapper { const { name, expression, should_cache } = style_directive; const snippet = expression.manipulate(block); - let cached_snippet; + let cached_snippet: Identifier | undefined; if (should_cache) { cached_snippet = block.get_unique_name(`style_${name.replace(regex_minus_signs, '_')}`); block.add_variable(cached_snippet, snippet); @@ -1136,7 +1134,7 @@ export default class ElementWrapper extends Wrapper { }); } - add_manual_style_scoping(block) { + add_manual_style_scoping(block: Block) { if (this.node.needs_manual_style_scoping) { const updater = b`@toggle_class(${this.var}, "${this.node.component.stylesheet.id}", true);`; block.chunks.hydrate.push(updater); @@ -1151,7 +1149,7 @@ const regex_dollar_signs = /\$/g; function to_html(wrappers: Array, block: Block, literal: any, state: any, can_use_raw_text?: boolean) { wrappers.forEach(wrapper => { if (wrapper instanceof TextWrapper) { - // Don't add the
/ newline logic here because pre/textarea.innerHTML
+			// Don't add the 
/