TypesScript警告“使用接口而不是类型文字”

时间:2017-03-23 10:18:41

标签: typescript interface

Linting我的代码,我在InternalStateType定义

上收到此TS警告
 [line 8]    export type InternalStateType = {
              [key: string]: any,
              appName: string,
              darkMode: boolean,
              defaultLang: string,
              topnavTitle: string,
              messagePanelOpen: boolean,
              sidenavOpen: boolean,
              sidenavMode: string,
              sidenavCollapse: boolean,
              pageFullscreen: boolean,
              pageFooter: boolean,
              initial: boolean,
            };
我的App服务中使用了

InternalStateType

/**
 * App service
 */
@Injectable()
export class AppService {

  // Set your states default value.
  private state: InternalStateType = {
    appName: 'MyApp',
    darkMode: false,
    defaultLang: 'en',
    topnavTitle: 'MyApp',
    messagePanelOpen: false,
    sidenavOpen: false,
    sidenavMode: 'over',
    sidenavCollapse: true,
    pageFullscreen: false,
    pageFooter: false,
    initial: false,
  };

这是否意味着更换更好:

export type InternalStateType = {

使用:

export interface InternalStateType {

2 个答案:

答案 0 :(得分:6)

对于那些可能关心的人,应该是

    .yamm .nav, .yamm .collapse, .yamm .dropup, .yamm .dropdown {
    position: static;
}
.yamm .container {
    position: relative;
    z-index: 10000!important;
}
.yamm .dropdown-menu {
    left: auto;
}
.yamm .yamm-content {
    padding: 20px 30px;
}
.yamm .dropdown.yamm-fw .dropdown-menu {
    left: 0;
    right: 0;
}

没有等号。

以下是docs

答案 1 :(得分:4)

是的,就是这样。

没有理由在这里通过接口使InternalStateType成为一个类,因为它没有它自己的行为 - 它只是一个DTO类型的东西。