类型参数类的Typescript泛型约束

问题描述 投票:4回答:1

如何对TypeScript类型参数设置约束。在c#中你可以使用构造{ where T:class}吗?

typescript type-constraints
1个回答
3
投票

Typescript是否支持对类型参数的约束,例如c#{where T:class}。

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

Example

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),这意味着类和接口的处理方式与泛型约束相同。

© www.soinside.com 2019 - 2024. All rights reserved.