今天,我尝试在我的angular 6应用程序中做到这一点:
export interface AuthConfig {}
export interface BasicAuthConfig extends AuthConfig {
username: string;
password: string;
}
export interface OAuth2AuthConfig extends AuthConfig {
tokenName: string;
url: string;
callbackUrl: string;
clientId: string;
scope: string[];
grantType: grantTypes;
}
并得到了一个lint错误:
An empty interface is equivalent to `{}`. (no-empty-interface)
我想用我的端点接口来做这件事:
Export interface Endpoint {
…
authConfig: AuthConfig;
…
}
但却沦落到这样:
Export interface Endpoint {
…
authConfig: BasicAuthConfig | OAuth2AuthConfig;
…
}
不同类型的授权可能会变得很长,所以我不想继续将类型添加到Endpoint接口的authConfig属性中。有没有什么方法可以声明一个空接口来扩展它,而不会让lint对我大喊大叫?
谢谢
5条答案
按热度按时间f8rj6qna1#
您可以在
tslint.json
中禁用此规则:或者只禁用一行的linting:
b5lpy0ml2#
如何禁用
mi7gmzs63#
还有一种方式:
6yoyoihd4#
另一种解决方案是使用
type
而不是像export type AuthConfig = {};
那样使用interface
,因为在typescript 2.2中也可以扩展type
yh2wf1be5#
您可以用途: