diff --git a/extensions/amp-carousel/0.1/build-dom.js b/extensions/amp-carousel/0.1/build-dom.js index 49e0b625042e..9458b9005e9c 100644 --- a/extensions/amp-carousel/0.1/build-dom.js +++ b/extensions/amp-carousel/0.1/build-dom.js @@ -141,7 +141,7 @@ export function queryCarouselControls(element) { * @param {Element} element * @return {{ * container: HTMLDivElement - * cells: HTMLDivElement[] + * cells: HTMLElement[] * }} */ function buildScrollableCarousel(element) { @@ -150,7 +150,7 @@ function buildScrollableCarousel(element) { } const doc = element.ownerDocument; - const cells = realChildElements(element); + const cells = /** @type {HTMLElement[]} */ (realChildElements(element)); const container = doc.createElement('div'); container.classList.add(ClassNames.SCROLLABLE_CONTAINER); @@ -170,7 +170,7 @@ function buildScrollableCarousel(element) { * @param {Element} element * @return {{ * container: HTMLDivElement - * cells: HTMLDivElement[] + * cells: HTMLElement[] * }} */ function queryScrollableCarousel(element) { @@ -179,7 +179,7 @@ function queryScrollableCarousel(element) { `.${escapeCssSelectorIdent(ClassNames.SCROLLABLE_CONTAINER)}` ) ); - const cells = /** @type {HTMLDivElement[]} */ ( + const cells = /** @type {HTMLElement[]} */ ( Array.from( element.querySelectorAll(`.${escapeCssSelectorIdent(ClassNames.SLIDE)}`) ) @@ -192,7 +192,7 @@ function queryScrollableCarousel(element) { * Builds the DOM necessary for slidescroll carousel. * @param {Element} element * @return {{ - * slides: HTMLDivElement[] + * slides: Element[] * slidesContainer: HTMLDivElement * slideWrappers: HTMLDivElement[] * }} @@ -236,7 +236,7 @@ function buildSlideScrollCarousel(element) { * Queries for ivars for slidescroll. * @param {Element} element * @return {{ - * slides: HTMLDivElement[] + * slides: Element[] * slidesContainer: HTMLDivElement * slideWrappers: HTMLDivElement[] * }} @@ -254,10 +254,8 @@ function querySlideScrollCarousel(element) { ) ) ); - const slides = /** @type {HTMLDivElement[]} */ ( - Array.from( - element.querySelectorAll(`.${escapeCssSelectorIdent(ClassNames.SLIDE)}`) - ) + const slides = Array.from( + element.querySelectorAll(`.${escapeCssSelectorIdent(ClassNames.SLIDE)}`) ); assertDomQueryResults(slidesContainer, slideWrappers, slides); return {slides, slidesContainer, slideWrappers}; @@ -270,8 +268,8 @@ function querySlideScrollCarousel(element) { * prevButton: HTMLDivElement, * nextButton: HTMLDivElement * container?: HTMLDivElement - * cells?: HTMLDivElement[] - * slides?: HTMLDivElement[] + * cells?: HTMLElement[] + * slides?: Element[] * slidesContainer?: HTMLDivElement * slideWrappers?: HTMLDivElement[] * }} diff --git a/extensions/amp-carousel/0.1/shame.d.ts b/extensions/amp-carousel/0.1/shame.d.ts index 0019852a3246..71e6520b9ce6 100644 --- a/extensions/amp-carousel/0.1/shame.d.ts +++ b/extensions/amp-carousel/0.1/shame.d.ts @@ -24,71 +24,3 @@ declare module '#service' { declare module '#utils/analytics' { export var triggerAnalyticsEvent: any; } - -declare module '#core/dom/css-selectors' { - export var escapeCssSelectorIdent: (s: string) => string; -} - -// TODO: everything below are core stubs, which we can remove once Core has been -// converted to TS. -declare module '#core/constants/key-codes' { - export var Keys_Enum: any; -} - -declare module '#core/document/format' { - export var isAmp4Email: any; -} - -declare module '#core/dom/layout/viewport-observer' { - export var observeIntersections: any; -} - -declare module '#core/dom' { - export var toggleAttribute: any; - export var dispatchCustomEvent: any; - export var isServerRendered: (el: Element) => boolean; -} - -declare module '#core/window' { - export var getWin: (element: Element) => Window; -} - -declare module '#core/dom/query' { - export var realChildElements: any; - export var closestAncestorElementBySelector: any; -} - -declare module '#core/constants/action-constants' { - export var ActionTrust_Enum: any; -} - -declare module '#core/dom/layout' { - export var isLayoutSizeFixed: any; - export var isLayoutSizeDefined: any; -} - -declare module '#core/dom/layout/size-observer' { - export var observeContentSize: any; - export var unobserveContentSize: any; -} - -declare module '#core/types' { - export var isFiniteNumber: any; -} - -declare module '#core/types/object' { - export var dict: any; -} - -declare module '#core/dom/transition' { - export var numeric: any; -} - -declare module '#core/dom/style' { - export var getStyle: any; - export var setStyle: any; -} - -declare module '#core/data-structures/curve' { - export var bezierCurve: any; -} diff --git a/extensions/amp-carousel/0.1/slidescroll.js b/extensions/amp-carousel/0.1/slidescroll.js index 63e1d6982d71..4634fa525957 100644 --- a/extensions/amp-carousel/0.1/slidescroll.js +++ b/extensions/amp-carousel/0.1/slidescroll.js @@ -417,7 +417,7 @@ export class AmpSlideScroll extends AMP.BaseElement { } /** - * @param {!LayoutSize} size + * @param {import('#core/dom/layout/rect').LayoutSizeDef} size * @private */ onResized_(size) { diff --git a/extensions/amp-carousel/0.1/tsconfig.json b/extensions/amp-carousel/0.1/tsconfig.json index 0ce854da30cd..8a609b5cae40 100644 --- a/extensions/amp-carousel/0.1/tsconfig.json +++ b/extensions/amp-carousel/0.1/tsconfig.json @@ -1,10 +1,16 @@ { + "extends": "../../../tsconfig.base.json", "compilerOptions": { - "allowJs": true, - "checkJs": true, - "noEmit": true, - "paths": {} + "noImplicitAny": false, + "strictNullChecks": false, + "paths": { + "#compiler": ["../../../src/compiler"], + "#compiler/*": ["../../../src/compiler/*"], + "#core": ["../../../src/core"], + "#core/*": ["../../../src/core/*"], + "#third_party/*": ["../../../third_party/*"] + } }, - "include": ["*.js", "**/*.d.ts", "../../../src/*.d.ts"], - "exclude": [] + "include": ["*.js", "**/*.d.ts", "../../../src/**/*.d.ts"], + "exclude": ["../../../src/purifier/index.d.ts"] } diff --git a/src/base-element.d.ts b/src/base-element.d.ts index eeddc30d46e3..fd323d0e3479 100644 --- a/src/base-element.d.ts +++ b/src/base-element.d.ts @@ -107,9 +107,6 @@ declare namespace AMP { ) => void; } -// TODO(samouri): Move the types below to better locations. -declare type AmpElement = HTMLElement; - declare type Layout = | 'nodisplay' | 'fixed' @@ -136,6 +133,3 @@ declare type LayoutRect = { type Mutations = { [key: string]: null | boolean | string | number | Array | Object; }; - -// TODO:(samouri): correctly type this within src/core/types/object/json -declare type JsonObject = any;