So I would like to do something like this
    
    
    type TimingEvent = { name: "start"; userStarted: boolean } | { name: 
"closed"; duration: number };
    
    const handleEvent = (event: TimingEvent) => {
      switch (event.name) {
        case "start":
          const initiatedByUser = event.userStarted;
          break;
        
        case "closed":
          const timespan = event.duration;
          break;
      }
    };
    
    type APIResponses = { version: 0; msg: string } | { version: 1; message: 
string; status: number } | { error: string };
    
    const handleResponse = (response: APIResponses) => {
      if ("error" in response) {
        console.error(response.error);
        return;
      }
      
      if (response.version === 0) {
        console.log(response.msg);
      } else if (response.version === 1) {
        console.log(response.status, response.message);
      }
    };
    
    
    
    Run

#### References

  * <https://www.typescriptlang.org/>


Reply via email to