未验证 提交 0bc07603 编写于 作者: M Maxi Gimenez 提交者: GitHub

chore(next): link/router/document missing types (#12692)

上级 ce830af2
......@@ -11,7 +11,7 @@ import {
import Router from './router'
import { addBasePath } from '../next-server/lib/router/router'
function isLocal(href: string) {
function isLocal(href: string): boolean {
const url = parse(href, false, true)
const origin = parse(getLocationOrigin(), false, true)
......@@ -40,7 +40,7 @@ function memoizedFormatUrl(formatFunc: (href: Url, as?: Url) => FormatResult) {
}
}
function formatUrl(url: Url) {
function formatUrl(url: Url): string {
return url && typeof url === 'object' ? formatWithValidation(url) : url
}
......@@ -60,7 +60,7 @@ const IntersectionObserver =
typeof window !== 'undefined' ? window.IntersectionObserver : null
const prefetched: { [cacheKey: string]: boolean } = {}
function getObserver() {
function getObserver(): IntersectionObserver | undefined {
// Return shared instance of IntersectionObserver if already created
if (observer) {
return observer
......@@ -125,11 +125,11 @@ class Link extends Component<LinkProps> {
cleanUpListeners = () => {}
componentWillUnmount() {
componentWillUnmount(): void {
this.cleanUpListeners()
}
getPaths() {
getPaths(): string[] {
const { pathname } = window.location
const { href: parsedHref, as: parsedAs } = this.formatUrls(
this.props.href,
......@@ -139,7 +139,7 @@ class Link extends Component<LinkProps> {
return [resolvedHref, parsedAs ? resolve(pathname, parsedAs) : resolvedHref]
}
handleRef(ref: Element) {
handleRef(ref: Element): void {
if (this.p && IntersectionObserver && ref && ref.tagName) {
this.cleanUpListeners()
......@@ -167,7 +167,7 @@ class Link extends Component<LinkProps> {
}
})
linkClicked = (e: React.MouseEvent) => {
linkClicked = (e: React.MouseEvent): void => {
const { nodeName, target } = e.currentTarget as HTMLAnchorElement
if (
nodeName === 'A' &&
......@@ -212,7 +212,7 @@ class Link extends Component<LinkProps> {
})
}
prefetch(options?: PrefetchOptions) {
prefetch(options?: PrefetchOptions): void {
if (!this.p || typeof window === 'undefined') return
// Prefetch the JSON page if asked (only in the client)
const paths = this.getPaths()
......
......@@ -104,7 +104,7 @@ routerEvents.forEach(event => {
})
})
function getRouter() {
function getRouter(): Router {
if (!singletonRouter.router) {
const message =
'No router instance found.\n' +
......@@ -120,7 +120,7 @@ export default singletonRouter as SingletonRouter
// Reexport the withRoute HOC
export { default as withRouter } from './with-router'
export function useRouter() {
export function useRouter(): NextRouter {
return React.useContext(RouterContext)
}
......@@ -131,7 +131,7 @@ export function useRouter() {
// Create a router and assign it as the singleton instance.
// This is used in client side when we are initilizing the app.
// This should **not** use inside the server.
export const createRouter = (...args: RouterArgs) => {
export const createRouter = (...args: RouterArgs): Router => {
singletonRouter.router = new Router(...args)
singletonRouter.readyCallbacks.forEach(cb => cb())
singletonRouter.readyCallbacks = []
......
......@@ -37,7 +37,7 @@ function dedupe(bundles: any[]): any[] {
return kept
}
function getOptionalModernScriptVariant(path: string) {
function getOptionalModernScriptVariant(path: string): string {
if (process.env.__NEXT_MODERN_BUILD) {
return path.replace(/\.js$/, '.module.js')
}
......@@ -626,7 +626,7 @@ export class NextScript extends Component<OriginProps> {
))
}
static getInlineScriptSource(documentProps: DocumentProps) {
static getInlineScriptSource(documentProps: DocumentProps): string {
const { __NEXT_DATA__ } = documentProps
try {
const data = JSON.stringify(__NEXT_DATA__)
......@@ -821,11 +821,11 @@ export class NextScript extends Component<OriginProps> {
}
}
function getAmpPath(ampPath: string, asPath: string) {
function getAmpPath(ampPath: string, asPath: string): string {
return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`
}
function getPageFile(page: string, buildId?: string) {
function getPageFile(page: string, buildId?: string): string {
const startingUrl = page === '/' ? '/index' : page
return buildId ? `${startingUrl}.${buildId}.js` : `${startingUrl}.js`
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册