функцией-тайп-гардом?
                  
                  
                  
                  
                  
                  То есть что-то такое: 
                  
                  
                  
                  
                  
                  
                  
                  
                  function assertType<T>(
                  
                  
                    value: unknown,
                  
                  
                    check: (value: unknown): value is T => boolean
                  
                  
                  ): asserts value is T {
                  
                  
                    if (!check(value)) {
                  
                  
                      throw new Error('Type Error');
                  
                  
                    }
                  
                  
                  }
                  
                  
                  
                  
                  
                  https://www.typescriptlang.org/play?ssl=4&ssc=1&pln=5&pc=1#code/GYVwdgxgLglg9mABAQwM6oKYCcoBUCeADhgDy4B8AFAFCKIBuyANiBgFyLgDWYcA7mAA0tRBAAWGCFw6VGLdpzA9+YAJQc5rRDFSJciALzlEAIzhwmGZGGrqU6bFF2aM23foDeImMESUAhOKSXLLMrKqqiF50dFBiWPyIYBh8iACiWAlYlADkBMTpmXBYOaoA3CIAvtTVQA
                  
                  
                
check: (value: unknown) => value is T
Обсуждают сегодня