refactor(feature): use OptionCodename[] type for relatedOptions

This CL also fixes the relatedOptions for the features which have
already been migrated to the new architecture.

Change-Id: I457e16af132eaa855b3386237a5dc692eb8e0d91
diff --git a/src/common/architecture/features/Feature.ts b/src/common/architecture/features/Feature.ts
index c14c338..e1a3389 100644
--- a/src/common/architecture/features/Feature.ts
+++ b/src/common/architecture/features/Feature.ts
@@ -1,3 +1,4 @@
+import { OptionCodename } from '../../optionsPrototype';
 import Script, { ConcreteScript } from '../scripts/Script';
 
 export default abstract class Feature {
@@ -11,7 +12,7 @@
   /**
    * Options which control the behavior of this feature.
    */
-  abstract readonly relatedOptions: string[];
+  abstract readonly relatedOptions: OptionCodename[];
 
   /**
    * Uninitialized scripts which are associated with the feature.
diff --git a/src/features/autoRefresh/autoRefresh.feature.ts b/src/features/autoRefresh/autoRefresh.feature.ts
index 285690e..dd0959e 100644
--- a/src/features/autoRefresh/autoRefresh.feature.ts
+++ b/src/features/autoRefresh/autoRefresh.feature.ts
@@ -1,5 +1,6 @@
 import Feature from '../../common/architecture/features/Feature';
 import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
 import AutoRefreshNodeWatcherScript from './scripts/nodeWatcher.script';
 import AutoRefreshSetUpScript from './scripts/setUp.script';
 import AutoRefreshStylesScript from './scripts/styles.script';
@@ -12,5 +13,5 @@
   ];
 
   readonly codename = 'autoRefresh';
-  readonly relatedOptions = ['autorefresh'];
+  readonly relatedOptions: OptionCodename[] = ['autorefreshlist'];
 }
diff --git a/src/features/extraInfo/extraInfo.feature.ts b/src/features/extraInfo/extraInfo.feature.ts
index f7f9f66..63f0818 100644
--- a/src/features/extraInfo/extraInfo.feature.ts
+++ b/src/features/extraInfo/extraInfo.feature.ts
@@ -1,5 +1,6 @@
 import Feature from '../../common/architecture/features/Feature';
 import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
 import CCExtraInfoDependencySetUpScript from './scripts/ccExtraInfoDependencySetUp.script';
 import CCExtraInfoInjectScript from './scripts/ccExtraInfoInject.script';
 import CCExtraInfoMainScript from './scripts/ccExtraInfoMain.script';
@@ -14,5 +15,5 @@
   ];
 
   readonly codename = 'extraInfo';
-  readonly relatedOptions: string[] = [];
+  readonly relatedOptions: OptionCodename[] = ['extrainfo', 'perforumstats'];
 }
diff --git a/src/features/infiniteScroll/infiniteScroll.feature.ts b/src/features/infiniteScroll/infiniteScroll.feature.ts
index b10ecfa..4f3ff41 100644
--- a/src/features/infiniteScroll/infiniteScroll.feature.ts
+++ b/src/features/infiniteScroll/infiniteScroll.feature.ts
@@ -1,10 +1,11 @@
 import Feature from '../../common/architecture/features/Feature';
 import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
 import CCInfiniteScrollScript from './scripts/ccInfiniteScroll.script';
 
 export default class InfiniteScrollFeature extends Feature {
   public readonly scripts: ConcreteScript[] = [CCInfiniteScrollScript];
 
   readonly codename = 'infiniteScroll';
-  readonly relatedOptions = ['list', 'thread', 'threadall'];
+  readonly relatedOptions: OptionCodename[] = ['list', 'thread', 'threadall'];
 }