Typescript 这个类型定义实际上意味着什么?
几天前我开始学习TS,当我在互联网上寻找用TS完成的express服务器时,我发现这是Middleware参数的类型定义,我实际上并不理解它。我试图在Typescript文档中搜索它,但没有找到任何类似的内容Typescript 这个类型定义实际上意味着什么?,typescript,typescript-typings,Typescript,Typescript Typings,几天前我开始学习TS,当我在互联网上寻找用TS完成的express服务器时,我发现这是Middleware参数的类型定义,我实际上并不理解它。我试图在Typescript文档中搜索它,但没有找到任何类似的内容 <!-- language: lang-ts --> function initializeMiddlewares (middlewares: { forEach: (arg0: (middleware: any) => void) =&
<!-- language: lang-ts -->
function initializeMiddlewares (middlewares: {
forEach: (arg0: (middleware: any) => void) => void
}): void {
middlewares.forEach(middlewares => {
this.app.use(middlewares);
})
}
函数初始化Middleware(中间件:任意):void{
middleware.forEach(middleware=>{
console.log(中间件)
此应用程序使用(中间件);
})
}
此类型定义表示,InitializeMiddleware
是一个标记参数(Middleware
)的函数,该参数返回void
,Middleware
是一个具有forEach
方法的函数;forEach
方法是一个标记参数(arg0
)的函数,它是另一个接受any
(中间件
)的函数;内部函数返回void,外部函数也返回void
更改内容时出现的错误可能会让人感到困惑,因为名称middleware
被隐藏;它指的是forEach
中的内部名称。如果要使用隐式any,则需要更改tsconfig.json
:“noImplicitAny”:false
逐点分解有助于理解复杂类型:
function initializeMiddlewares (
// middlewares argument
middlewares: {
// forEach method which should exist on the middlewares argument
forEach:
// inner function
arg0: (middleware: any) => void)
// forEach return
=> void,
}
// initializeMiddlewares return
): void
{
middlewares.forEach(middlewares => {
this.app.use(middlewares);
})
}
非常感谢你。有了你的解释,就更容易理解了
<!-- language: lang-ts -->
function initializeMiddlewares(middlewares: any): void {
middlewares.forEach(middlewares => {
console.log(middlewares)
this.app.use(middlewares);
})
}
function initializeMiddlewares (
// middlewares argument
middlewares: {
// forEach method which should exist on the middlewares argument
forEach:
// inner function
arg0: (middleware: any) => void)
// forEach return
=> void,
}
// initializeMiddlewares return
): void
{
middlewares.forEach(middlewares => {
this.app.use(middlewares);
})
}