Question: I want create countdown timer in service but the service may killed by system or when user shutdown his phone, What is the best alternative to ensure the continuation of the count under any circumstances?

Answer: 
How about a generic object type?

```js
interface SomeInterface {
 ...
 description: { [key: string]: string | number }
}

const myObj: SomeInterface = {}
console.log(myObj.description.TargetId); //works

```

\***But you will not have any autocomplete**
For the example provided, you can use the `Record` interface.

`Record<string, Record<string, any>>` represents an object with unknown keys, where any one of those keys may contain another object of unknown key-value pairs.

You can change the types in the inner Record, if you can be more specific. For instance, in your given description example, it appears as though `Record<string, string>` may be sufficient.

So a real world example, using Observables and Subscription would look similar to:

```
somePostApiCall(requestBody: Record<string, any> = {}): Observable<Record<string, any>>  {
  return this.http.post<Record<string, any>>('someurl', requestBody);
}

```

In your use case, you simply need to specify an object type. So if you have a variable:

```
basicExample: Record<string, any>; // This will accept a key value object with no specified key names

```