typescript - <this> 在 TypeScript 泛型中是什么意思?

标签 typescript express generics

我们使用 express在我们的应用程序中使用 TypeScript。我看到了他们的类型定义,想知道以下是什么意思:

export interface IRouter extends RequestHandler {
    all: IRouterMatcher<this>;
}

enter image description here

特别是 IRouterMatcher<this> .

我阅读了几次文档,但找不到任何提及此用例的内容。而且很难搜索 <this>在 SO 或 Web 中,因为尖括号通常会被剥离。

最佳答案

this 指的是当前可用的类型。

这也可能是重写的类或接口(interface)的子类型。

另请参阅 https://www.typescriptlang.org/docs/handbook/advanced-types.html 中的多态 this 类型

例子:

class Calculator {
    a: number;
    add(): this {
        a++;
        return this;
    } 
}

class AdvancedCalculator {
    substract(): this {
         a--;
         return this;
    } 
}

new AdvancedCalculator()
   .add() // returns AdvancedCalculator as "this" 
   .substact() // it compiles! 

关于typescript - <this> 在 TypeScript 泛型中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53051706/

相关文章:

javascript - 如何从 .vue 文件中导出多个对象

typescript - 如何从 lib.dom.d.ts 导入接口(interface)?

node.js - TypeError : Object {. ..} 没有方法 'find' - 当将 mongoose 与express一起使用时

c# - 具有多泛型问题的 AppDomain.DoCallBack()

c# - 泛型的基本用法

javascript - 在 Typescript 中将接口(interface)转换为函数参数

arrays - 如何在指定索引处创建具有特定类型的数组?

express - 使用快速错误处理程序的好处是什么?

javascript - nodejs cookie中间件源代码中的"this instanceof Cookies"

java - 以 TreeMap<K, V> 作为参数的简单泛型方法