Yes it is possible you are very close, you can use the predefined Extract
conditional type. You can will need to pass in, as the second argument, a type that can be a base type for the type you are seeking:
type LinkItem = Extract<Item, { type: 'link' }> // will be { type: "link"; url: string; }