Если вам нужно просто иметь псевдоним для PartialFuncion [MyClass, String], вы должны сделать
type MyPf = PartialFunction[MyClass, String]
это объявление невозможно на верхнем уровне, оно должно быть внутри объекта.Если вы хотите, чтобы он выглядел очень похоже на объявление верхнего уровня, то вы можете объявить тип в объекте пакета.
Чтобы пойти немного дальше, выполните команду
abstract class mypf extends PartialFunction[MyClass, String]
юридический (он явно должен быть абстрактным, в нем отсутствует реализация для применения и он определен).Однако выражение типа {case x => ...}
будет иметь тип PartialFunction, а не ваш тип, поэтому ваш тип не будет удобным.
Даже без потери литералов использование наследования только для получения псевдонима имеет ограниченное применение.Если вы сделаете class MyClass extends Something<With, Lots, Of, Parameters>
, MyClass
поможет при создании экземпляров, но объявление параметров метода типа MyClass
предотвращает чрезмерное ограничение метода.