类型参数的 Typescript 泛型约束 class

Typescript generic constraints on type parameters class

如何对 TypeScript 类型参数施加约束。在 C# 中,您可以使用构造 { where T:class}?

Does Typescript support constraints on type parameters like c# { where T:class}.

是的。语法格式为 <T extends SomeClass> 而不是 <T>

例子

interface Foo{
    foo: number;
}

function foo<T extends Foo>(foo:T){
    console.log(foo.foo);
}

foo({foo:123}); // okay
foo({foo:'123'}); // Error

请注意,typescript 中的类型是结构化的 (why),这意味着 类 和接口在通用约束方面的处理方式相同。